1.题意

任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案

2.分析

数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的数的个数计算不能重复,比如样例里要猜1122,尝试1234,这里只有两个数猜中了,1122中的前两个1只能算一次

注意题目限定是四位数所以直接枚举1000-9999就可以了

3.代码

 # include <iostream>
# include <cstdio>
using namespace std;
const int maxn=;
int N,ans;
struct Node
{
int test_num,a,b;
Node(){}
Node(int tt,int aa,int bb)
{
test_num=tt;
a=aa;
b=bb;
}
}Test[maxn];
void Init()
{
for(int i=;i<N;i++)
scanf("%d%d%d",&Test[i].test_num,&Test[i].a,&Test[i].b);
ans=-;
}
bool judge(int num)
{
int np[],nptest[];
np[]=num%;
np[]=(num%)/;
np[]=(num%)/;
np[]=num/;
for(int i=;i<N;i++)
{
nptest[]=Test[i].test_num%;
nptest[]=(Test[i].test_num%)/;
nptest[]=(Test[i].test_num%)/;
nptest[]=Test[i].test_num/;
int tempa,tempb;
tempa=tempb=;
int vis[];
for(int j=;j<;j++) vis[j]=;
for(int j=;j<;j++)
{
if(np[j]==nptest[j]) tempb++;
for(int k=;k<;k++)
{
if(np[j]==nptest[k]&&vis[k]==)
{
vis[k]=;
tempa++;
break;
}
}
}
if(tempa==Test[i].a&&tempb==Test[i].b)
continue;
else return false;
}
return true;
}
int getcnt()
{
int cnt=;
for(int i=;i<;i++)
if(judge(i))
{
ans=i;
cnt++;
}
return cnt;
}
void Solve()
{
int temp=getcnt();
if(temp==) printf("%d\n",ans);
else printf("Not sure\n");
}
int main()
{
while(scanf("%d",&N)!=EOF)
{
if(N==) break;
Init();
Solve();
}
return ;
}

HDU1172猜数字 [模拟]的更多相关文章

  1. hdu1172猜数字(暴力枚举)

    猜数字 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  2. hdu1172猜数字

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1172 题目 猜数字 Time Limit: 20000/10000 MS (Java/Others) ...

  3. HDU 1172 猜数字 (模拟)

    题目链接 Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜 ...

  4. noip模拟赛 猜数字

    题目描述 LYK在玩猜数字游戏. 总共有n个互不相同的正整数,LYK每次猜一段区间的最小值.形如[li,ri]这段区间的数字的最小值一定等于xi. 我们总能构造出一种方案使得LYK满意.直到…… LY ...

  5. 用while循环写一个简单的猜数字游戏

    import random #练习:模拟猜数字的游戏 """ 计算机出一个1~100之间的随机数由人来猜 计算机根据人猜的数字分别给出 大一点/小一点/猜中了 的提示 & ...

  6. 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数

      猜数字游戏--核心代码--猜测次数   #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...

  7. java实现 猜数字游戏

    猜数字游戏 猜数字 很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜.每猜一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了.下列的代码模拟了这个过程.其中用户充当甲的角色,计算机充当乙的角色. ...

  8. C语言猜数字游戏

    猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...

  9. 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II

    好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...

随机推荐

  1. MySQL的安装问题总结--终极解决方案

    MySQL安装 选择:custom 自定义 更改路径 安装到其他盘 选择:launch configuration  finish 进行配置 如果忘记选择 找 "E:\Program Fil ...

  2. python 函数定义与调用时,不定长参数的传入

  3. POJ-3026_Borg Maze

    Borg Maze Time Limit: 1000MS Memory Limit: 65536K Description The Borg is an immensely powerful race ...

  4. MaxCompute 费用暴涨之存储压缩率降低导致SQL输入量变大

    现象:同样的SQL,每天处理的数据行数差不多,但是费用突然暴涨甚至会翻数倍. 分析: 我们先明确MaxCompute SQL后付费的计费公式:一条SQL执行的费用=扫描输入量 ️ SQL复杂度 ️ 0 ...

  5. Redis源码解析:07压缩列表

    压缩列表(ziplist)是列表键和哈希键的底层实现之一.当列表键只包含少量列表项,并且每个列表项要么是小整数值,要么是长度较短的字符串时:或者当哈希键只包含少量键值对,并且每个键值对的键和值要么是小 ...

  6. 模板—BSGS

    #include<iostream> #include<cstdio> #include<cmath> #include<map> #define LL ...

  7. vue项目配置同一局域网可使用ip访问

    1.检查 package.json文件,scripts.dev设置 host改成 "0.0.0.0" 2.config文件中找到 index.js 文件的host改成 " ...

  8. [转]敏捷开发需求管理(产品backlog)

    传统的瀑布工作模式使用详细的需求说明书来表达需求,需求人员负责做需求调研,根据调研情况编制详细的需求说明书,进行需求评审,评审之后签字确认交给研发团队设计开发.在这样的环境下,需求文档是信息传递的主体 ...

  9. java Jre和Jdk的区别?

    JRE:(Java Runtime Environment),java运行环境.包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开 ...

  10. 2019-10-31-Resharper-去掉注释拼写

    title author date CreateTime categories Resharper 去掉注释拼写 lindexi 2019-10-31 9:8:5 +0800 2018-09-04 1 ...