HDU 1172 猜数字
2015-08-21 17:27
253 查看
题目地址:点击打开链接
思路:简单枚举,每次输入a,b,c是一个筛选条件,看最后筛下的符合条件的数字的个数是否为1即可,挺考基本功的
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool judge[10000];
int num1[10],num2[4];
int num3[10];
int main()
{
int n,a,b,c,i,j,sum1,sum2;
int l,m,k,y;
while(scanf("%d",&n),n)
{
memset(judge,true,sizeof(judge));
while(n--)
{
memset(num1,0,sizeof(num1));
scanf("%d%d%d",&a,&b,&c);
l = a;
k = 0;
while(l)
{
m = l % 10;
num1[m]++;
num2[k++] = m;
l /= 10;
}
for(i=1000; i<=9999; i++)
{
if(judge[i])//每次从上一次符合条件的数字中再筛选
{
sum1 = 0;
sum2 = 0;
memset(num3,0,sizeof(num3));
l = i;
y = 0;
while(l)
{
k = l % 10;
num3[k]++;
if(k == num2[y++])
sum1++;
l /= 10;
}
for(j=0; j<10; j++)
{
sum2 += min(num3[j],num1[j]);
}
if(sum2 == b && sum1 == c)
{
judge[i] = true;
}
else
judge[i] = false;
}
}
}
int sum3 = 0,x;
for(i=1000; i<=9999; i++)
{
if(judge[i])
{
sum3++;
x = i;
}
}
if(sum3 != 1)
printf("Not sure\n");
else
printf("%d\n",x);
}
return 0;
}
思路:简单枚举,每次输入a,b,c是一个筛选条件,看最后筛下的符合条件的数字的个数是否为1即可,挺考基本功的
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool judge[10000];
int num1[10],num2[4];
int num3[10];
int main()
{
int n,a,b,c,i,j,sum1,sum2;
int l,m,k,y;
while(scanf("%d",&n),n)
{
memset(judge,true,sizeof(judge));
while(n--)
{
memset(num1,0,sizeof(num1));
scanf("%d%d%d",&a,&b,&c);
l = a;
k = 0;
while(l)
{
m = l % 10;
num1[m]++;
num2[k++] = m;
l /= 10;
}
for(i=1000; i<=9999; i++)
{
if(judge[i])//每次从上一次符合条件的数字中再筛选
{
sum1 = 0;
sum2 = 0;
memset(num3,0,sizeof(num3));
l = i;
y = 0;
while(l)
{
k = l % 10;
num3[k]++;
if(k == num2[y++])
sum1++;
l /= 10;
}
for(j=0; j<10; j++)
{
sum2 += min(num3[j],num1[j]);
}
if(sum2 == b && sum1 == c)
{
judge[i] = true;
}
else
judge[i] = false;
}
}
}
int sum3 = 0,x;
for(i=1000; i<=9999; i++)
{
if(judge[i])
{
sum3++;
x = i;
}
}
if(sum3 != 1)
printf("Not sure\n");
else
printf("%d\n",x);
}
return 0;
}
相关文章推荐
- Netty之BIO(同步阻塞IO)、PIO(伪异步阻塞IO)、NIO(异步非阻塞IO)、AIO(异步非阻塞IO)、Netty
- web 小票打印插件
- DB2将一列数据拼接成一个字符串(转自百度知道)
- Oracle关于时间/日期的操作
- 反向代理
- 【开学季】自学嵌入式开发|四核开发板|4412开发板|ARM+Android+linux技术
- 线程4:原子变量与原子操作
- POJ_1067 取石子游戏(Wythoff Game)
- 【NOI2006 Day2 T1】最大获利
- 第0章 前言知识
- hdoj-1874 畅通工程续【最短路径--dijkstra&&floyd&&spfa】
- Windows多桌面切换(CreateDesktop,SwitchDesktop函数)
- Netty系列之Netty百万级推送服务设计要点
- jQuery实现导航栏
- 编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
- 德飞莱STM32单片机学习(一)——下载环境搭建
- UICollectionView--九宫格
- Light OJ 1407 - Explosion 【2-sat之 3布尔变量的处理 — 枚举所有状态判断是否存在可行解 + 反向输出可行解】【好题】
- Oracle11g透明网关搭建
- jQuery实现点击式选项卡