【链接】 我是链接,点我呀:)
【题意】

给你一个长度为4的数字序列(每个数字都在0~9之间,且不重复出现)
现在让你猜这个长度为4的序列是什么.
猜了之后对方会告诉有几个数字是位置和数字都正确的(猜的数字序列有顺序)
以及有几个数字是数字出现了但是位置不正确.
即给你两个反馈。
现在给你n个猜的过程(猜的4个数字以及对应的两个反馈)
问你是否能唯一的确定一个4位数字的答案

【题解】

列举出来最后的4位数的所有可能。
对于每一种可能 将其对这n个猜的过程验证一遍》
如果验证通过,那么递增sum
最后如果sum==1则说明存在唯一的一个可能.
sum==0说明没有任何一个可能,则数据有错
sum>1则说明需要更多的数据才能确定是哪一个.

【代码】

import java.io.*;
import java.util.*;public class Main {static int N = (int)10;static String s[];static int b[],c[],n,ans[],sum,final_ans[];static boolean bo[];static boolean flag[];public static boolean check(){for (int i = 1;i <= n;i++){for (int j = 0;j <= 9;j++) flag[j] = false;int cnt1 = 0,cnt2 = 0;for (int j = 0;j < 4;j++)if ( (s[i].charAt(j)-'0') == ans[j+1]){cnt1++;}else{flag[s[i].charAt(j)-'0'] = true;}for (int j = 1;j <= 4;j++)if (flag[ans[j]]==true){cnt2++;}if(cnt1==b[i] && cnt2==c[i]){continue;}else return false;}return true;}public static void dfs(int dep){if (sum>=2) return;if (dep==5){if (check()==true){for (int i = 1;i <= 4;i++) final_ans[i] = ans[i];sum++;}return;}for (int i = 0;i <= 9;i++)if (bo[i]==false){bo[i] = true;ans[dep] = i;dfs(dep+1);bo[i] = false;}}public static void main(String args[]){Scanner in = new Scanner(System.in);bo = new boolean[N+10];s = new String[N+10];b = new int[N+10];c = new int[N+10];ans = new int[N+10];flag = new boolean[N+10];final_ans = new int[N+10];sum = 0;n = in.nextInt();for (int i = 1;i <= n;i++){s[i] = in.next();b[i] = in.nextInt();c[i] = in.nextInt();}dfs(1);if (sum==0){System.out.println("Incorrect data");}else if (sum==1){for (int j = 1;j <= 4;j++)System.out.print(final_ans[j]);}else{System.out.print("Need more data");}}
}

转载于:https://www.cnblogs.com/AWCXV/p/10325543.html

【Codeforces 63C】Bulls and Cows相关推荐

  1. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  2. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

    题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...

  3. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)

    题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...

  4. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  5. 【CodeForces 997C】Sky Full of Stars(组合计数)

    题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...

  6. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  7. 【codeforces 508B】Anton and currency you all know

    [题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...

  8. 【codeforces 711B】Chris and Magic Square

    [题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...

  9. 【codeforces 807C】Success Rate

    [题目链接]:http://codeforces.com/contest/807/problem/C [题意] 给你4个数字 x y p q 要求让你求最小的非负整数b; 使得 (x+a)/(y+b) ...

最新文章

  1. 从Hive导出数据到Oracle数据库--Sqoop
  2. spring-mvc springboot 使用MockMvc对controller进行测试
  3. verilog中wire和reg的区别,什么时候用wire?什么时候用reg?
  4. C# 动态加载 动态卸载
  5. java后端工程师平时开发或多或少会用到eclipse,那么它有哪些快捷键呢
  6. [转载] JAVA泛型杂谈--擦除,协变,逆变,通配符等
  7. Pyalgotrade量化交易回测框架
  8. ----uni-app之解决HBuilderX安装less成功运行时提示未安装----
  9. openwrt拦截snmp报文
  10. jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...
  11. MKVToolNix Mac下载
  12. plc控制伺服电机 四轴攻丝机案例 该程序为plc控制伺服电机的工程案例程序,包含伺服电机接线图,包含程序流程的详细解释说明
  13. Django开发收银系统二
  14. Vista破解方法深度总结
  15. Chrome 任务栏图标变白色 解决方法
  16. div 添加失焦事件
  17. 88e1111的1000base-x to copper(GBIC)配置及使用
  18. Android进阶宝典—App响应时间优化
  19. 强烈推荐这 6 款 API 测试工具,绝对有一款没听过
  20. 文章4:多功能智能跟随行李箱控制系统设计 | 本科毕业设计 - 【资料搜索技巧+参考资源整合】

热门文章

  1. 假的!微信上询问商品会被封号 微信朋友圈公布1月份十大谣言
  2. Java成神之路——UML类关系图
  3. c++调用cplex求解例子_c++调用CPLEX环境配置
  4. 项目疑难杂症记录(二):焦点移动不了
  5. go-文件读写-db
  6. python清空集合_python集合的操作
  7. C宏的一个技巧:可变参数
  8. python单行注释用什么符号_Python多行注释和单行注释用法说明
  9. 【Elasticsearch】使用 Elasticsearch 轻松进行文本分类
  10. 【clickhouse】Clickhouse 支持毫秒 纳秒数据