蓝桥杯 算法训练 ALGO-114 黑白无常
1 0
1 0
3 1
0 4
1 3
4 0
1 3
1 /* 2 白纸条: 1 3 黑纸条: 0 4 */ 5 #include<iostream> 6 using namespace std; 7 8 int n; //人数 9 int cnt; //有多少种方案 10 int color[10]; //保存每个人头上纸条的颜色 11 int talk[10][2]; //保存每个人说话的内容 12 int result[100]; //保存所有白纸条人序号组成的自然数 13 14 int colorNum(int x, int col) //检查除自己外还有多少人为白纸条 / 黑纸条 15 { 16 int num = 0; 17 for (int j = 0; j < n; j++) 18 { 19 if (j == x) 20 continue; 21 else if(color[j] == col) 22 num++; 23 } 24 return num; 25 } 26 27 bool check() //检查说话的真假 28 { 29 bool flag; 30 for (int i = 0; i < n; i++) 31 { 32 flag = (colorNum(i, 1) == talk[i][0] && colorNum(i, 0) == talk[i][1]); 33 if (color[i] == 1) //白纸人说真话 34 { 35 if (!flag) 36 return false; 37 } 38 else //黑纸人说假话 39 { 40 if (flag) 41 return false; 42 } 43 } 44 return true; 45 } 46 47 void dfs(int now) 48 { 49 if (now == n) 50 { 51 if (check()) //如果检查正确 52 { 53 int temp = 0; 54 for (int i = 0; i < n; i++) 55 { 56 if (color[i] == 1) //计算此种方案时白纸人序号组成的自然数 57 temp = temp * 10 + i + 1; 58 } 59 result[cnt++]=temp; 60 } 61 return; 62 } 63 64 color[now] = 1; //白纸人 65 dfs(now+1); 66 67 color[now] = 0; //黑纸人 68 dfs(now+1); 69 } 70 71 int main() 72 { 73 cin >> n; 74 75 cnt = 0; 76 77 for (int i = 0; i < n; i++) 78 cin >> talk[i][0] >> talk[i][1]; 79 80 dfs(0); 81 82 if (cnt == 0) //如果没有白纸人 83 cout<<"NoSolution."<<endl; 84 else //找出所有方案中最小的一个数 85 { 86 int minNum = 987654321; 87 for (int i = 0; i < cnt; i++) 88 { 89 if (minNum > result[i]) 90 minNum = result[i]; 91 } 92 cout << minNum; 93 } 94 95 return 0; 96 }
转载于:https://www.cnblogs.com/cao-lei/p/7217857.html
蓝桥杯 算法训练 ALGO-114 黑白无常相关推荐
- 蓝桥杯 算法训练 幸运的店家
蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...
- 蓝桥杯 算法训练 Beaver's Calculator
蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- 蓝桥杯 算法训练 印章
蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...
- 蓝桥杯算法训练-24点(Python)
问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...
- 蓝桥杯——算法训练——数字三角形
蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...
- 蓝桥杯算法训练-强力党逗志芃
持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...
- 蓝桥杯 算法训练 逗志芃的危机
蓝桥杯 算法训练 逗志芃的危机 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和 ...
- 蓝桥杯算法训练-过河马
蓝桥杯算法训练题解有兴趣的可以支持下. 题目 问题描述 在那个过河卒逃过了马的控制以超级超级多的走法走到了终点之后,这匹马表示它不开心了-- 于是,终于有一天,它也过河了! 由于过河马积累了许多的怨念 ...
- 蓝桥杯——算法训练——进击的青蛙
问题描述 青蛙X正准备跳过一座桥,这座桥被划分为N段,记青蛙所在的起始点为0,桥的末端为N.桥上的一些点有一些石子,这些点是无法跳上去的.青蛙每次跳跃能向前跳跃+1,+2,+3段,现在请你算出跳到末端 ...
- 蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵
目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序,输入一个4位的自然数,将组成该数的各位数字重新排列,形成一个最大数和一 ...
最新文章
- [密码学] 杂凑函数
- 计算机教育日志,信息技术日志1
- 20162330 刘伟康_预备作业03
- 带你手写基于 Spring 的可插拔式 RPC 框架(四)代理类的注入与服务启动
- UE4之判断点是否在矩形内
- PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中
- 网络干货,无论是运维还是开发都要知道的网络知识系列之(八)
- Java:项目启动报错java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- 51单片机蜂鸣器实现歌曲《起风了》代码
- docker部署svnadmin进行权限管理
- 网络操作系统发展历程
- 金庸的武侠世界和SAP的江湖
- 动态SQL与SQL注入(一)动态SQL
- 老慜的A5作业——p5.js 动态、周期、随机、面向对象
- C语言之#error/#warning
- 仿百度贴吧回帖功能分析及代码示例
- 民营中小企业融资难的原因
- 德国 DocuWare 文档管理软件平台
- 短序列比对利器-bwa
- 大学生程序设计大赛官网
热门文章
- Java JUI打字小游戏项目
- 如何让IE9或IE8打开多个网页时只保留一个IEXPLORE.EXE进程
- 当当当~他来喽CCRC-PIP个人信息保护专业人员
- BZOJ 3110 题解
- python小说电子书阅读系统毕业设计开题报告
- 常用关于验证的正则表达式(EMai,Website,Money,Mobile)
- Teigha 40010 保存设置Wipeout时的边界显示问题
- last_load_time和last_active_time的选择
- centos上使用Dropbox
- 60.(leaflet之家)leaflet虚线