hdu1172猜数字
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1172
猜数字
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2540 Accepted Submission(s): 1475
比方计算机随机产生的数字为1122。假设玩家猜1234,由于1,2这两个数字同一时候存在于这两个数中,并且1在这两个数中的位置是同样的,所以计算机会告诉玩家猜对了2个数字,当中一个在正确的位置。假设玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置。
如今给你一段gameboy与计算机的对话过程,你的任务是依据这段对话确定这个四位数是什么。
6
4815 2 1
5716 1 0
7842 1 0
4901 0 0
8585 3 3
8555 3 2
2
4815 0 0
2999 3 3
0
3585
Not sure
这个题目的思路是:
从1000到9999进行暴力枚举。。。
须要满足两个条件:
1:题目所给的条件和眼下枚举的值要有同样的位数的值要相等。。
2:将眼下枚举的数和题目所给的数进行枚举,看所给的条件的数与眼下枚举的的数的出现同样的数相等的数有多少个。。可是反复的书不算。。所以开个标志变量。。。
所以我的暴力枚举解法例如以下:
#include<cstdio>
#include<cstring>
const int maxn=100+10;
struct node
{
int a,b,c;
}point[maxn];
int a[5],b[5];
int mark[5];
void pre_deal(int c,int d)
{
a[1]=c/1000;
a[2]=c/100%10;
a[3]=c/10%10;
a[4]=c%10;
b[1]=d/1000;
b[2]=d/100%10;
b[3]=d/10%10;
b[4]=d%10;
} int judge(int x,int y)
{
int count1,count2;
count1=count2=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(mark,0,sizeof(mark));
pre_deal(x,point[y].a);
for(int i=1;i<=4;i++)
{
if(a[i]==b[i])
count1++;
}
// printf("count1:%d\n",count1);
if(count1!=point[y].c)
return 0;
for(int i=1;i<=4;i++)
for(int j=1;j<=4;j++)
{
if(a[i]==b[j]&&!mark[j])
{
mark[j]=1;
count2++;
break;
}
}
//printf("count2:%d\n",count2);
if(count2!=point[y].b)
return 0;
else
return 1;
} int main()
{
int n,ok;
int count,ans;
while(scanf("%d",&n)!=EOF&&n)
{
count=0;
for(int i=1;i<=n;i++)
scanf("%d%d%d",&point[i].a,&point[i].b,&point[i].c);
for(int i=1000;i<=9999;i++)
{
ok=1;
for(int j=1;j<=n;j++)
{
ok=judge(i,j);
if(!ok)
break;
}
if(ok)
{
count++;
ans=i;
}
if(count==2)
break;
}
// printf("count:%d\n",count);
if(count==1)
printf("%d\n",ans);
else
printf("Not sure\n");
}
return 0;
}
hdu1172猜数字的更多相关文章
- hdu1172猜数字(暴力枚举)
猜数字 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU1172猜数字 [模拟]
1.题意 任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案 2.分析 数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的 ...
- C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- java 猜数字游戏
作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...
- 【原创Android游戏】--猜数字游戏Version 0.1
想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...
- 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用
--------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添 ...
- python学习笔记 ——python写的猜数字游戏 002
from sys import exit import random def Arrfor(str): #CONTST = CONTST + 1 artificial = input("请输 ...
- Python小游戏之猜数字
最近师兄师姐毕业,各种酒席,酒席上最常玩的一个游戏就是猜数字,游戏规则如下: 出题人在手机上输入一个0-100之间的数字,其它人轮流猜这个数字,如果你不幸猜中则要罚酒一杯.每次猜数字,出题人都要缩小范 ...
随机推荐
- python笔记之字符串
列表,元组,字符串的相互转换: 将字符串转换为序列和元组: >>> s="hello" >>> list(s)['h', 'e', 'l', ' ...
- java-输出格式
https://docs.oracle.com/javase/tutorial/java/data/numberformat.html Formatting Numeric Print Output ...
- Linux(CentOS或RadHat)下MySQL源码安装
安装环境: CentOS6.3 64位 软件: Mysql-5.6 所需包: gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.cmake :MySQL 5.5开始,使用cmake进 ...
- 替换NavigationController里面的返回按钮
通过navigationController push进来的controller,默认的返回按钮是将本controller pop出去. 但有时候想在pop出去前完成一些自己的一些事情,这时可以自己写 ...
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...
- Uva 511 Updating a Dictionary
大致题意:用{ key:value, key:value, key:value }的形式表示一个字典key表示建,在一个字典内没有重复,value则可能重复 题目输入两个字典,如{a:3,b:4,c: ...
- BZOJ 1385: [Baltic2000]Division expression
题目 1385: [Baltic2000]Division expression Time Limit: 5 Sec Memory Limit: 64 MB Description 除法表达式有如下 ...
- STL 源代码剖析 算法 stl_algo.h -- partition
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie partition ------------------------------------ ...
- spark sql 基本用法
一.通过结构化数据创建DataFrame: publicstaticvoid main(String[] args) { SparkConf conf = new SparkConf() .se ...
- 判断圆和矩形是否相交C - Rectangle and Circle
Description Given a rectangle and a circle in the coordinate system(two edges of the rectangle are p ...