【Codeforces 63C】Bulls and Cows
【链接】 我是链接,点我呀:)
【题意】
给你一个长度为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相关推荐
- 【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 ...
- 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)
题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...
- 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)
题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...
- 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)
题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...
- 【CodeForces 997C】Sky Full of Stars(组合计数)
题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- 【codeforces 508B】Anton and currency you all know
[题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...
- 【codeforces 711B】Chris and Magic Square
[题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...
- 【codeforces 807C】Success Rate
[题目链接]:http://codeforces.com/contest/807/problem/C [题意] 给你4个数字 x y p q 要求让你求最小的非负整数b; 使得 (x+a)/(y+b) ...
最新文章
- 从Hive导出数据到Oracle数据库--Sqoop
- spring-mvc springboot 使用MockMvc对controller进行测试
- verilog中wire和reg的区别,什么时候用wire?什么时候用reg?
- C# 动态加载 动态卸载
- java后端工程师平时开发或多或少会用到eclipse,那么它有哪些快捷键呢
- [转载] JAVA泛型杂谈--擦除,协变,逆变,通配符等
- Pyalgotrade量化交易回测框架
- ----uni-app之解决HBuilderX安装less成功运行时提示未安装----
- openwrt拦截snmp报文
- jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...
- MKVToolNix Mac下载
- plc控制伺服电机 四轴攻丝机案例 该程序为plc控制伺服电机的工程案例程序,包含伺服电机接线图,包含程序流程的详细解释说明
- Django开发收银系统二
- Vista破解方法深度总结
- Chrome 任务栏图标变白色 解决方法
- div 添加失焦事件
- 88e1111的1000base-x to copper(GBIC)配置及使用
- Android进阶宝典—App响应时间优化
- 强烈推荐这 6 款 API 测试工具,绝对有一款没听过
- 文章4:多功能智能跟随行李箱控制系统设计 | 本科毕业设计 - 【资料搜索技巧+参考资源整合】
热门文章
- 假的!微信上询问商品会被封号 微信朋友圈公布1月份十大谣言
- Java成神之路——UML类关系图
- c++调用cplex求解例子_c++调用CPLEX环境配置
- 项目疑难杂症记录(二):焦点移动不了
- go-文件读写-db
- python清空集合_python集合的操作
- C宏的一个技巧:可变参数
- python单行注释用什么符号_Python多行注释和单行注释用法说明
- 【Elasticsearch】使用 Elasticsearch 轻松进行文本分类
- 【clickhouse】Clickhouse 支持毫秒 纳秒数据