算法设计与分析:第一张 算法分析介绍 1.2逻辑推理之警察抓小偷
来源:互联网 发布:淘宝怎么看卖家电话 编辑:程序博客网 时间:2024/04/30 06:18
/*警察抓小偷:警察局抓了a,b,c,d四名嫌疑犯,其中只有一人是小偷。审问中:a说:"我不是小偷"b说:"c肯定是小偷"c说:"小偷肯定是d"d说:"c在冤枉人"分析:看似非数值化的问题,经过数字化之后,可以用计算机求解。假设a,b,c,d分别用1,2,3,4编号。然后用x=i表示第i个编号的人是小偷a说的话等价于: x != 1b : x = 3c : x = 4d : x != 4转化为:4条语句的逻辑值之和为3即((x != 1) + (x == 3) + (x == 4) + (x != 4)) == 3枚举1,2,3,4分别进行测试即可输入:输出:c*//*关键:1 看似非数值化的问题,经过数字化之后,可以用计算机求解。假设a,b,c,d分别用1,2,3,4编号。然后用x=i表示第i个编号的人是小偷a说的话等价于: x != 1b : x = 3c : x = 4d : x != 4转化为:4条语句的逻辑值之和为3即((x != 1) + (x == 3) + (x == 4) + (x != 4)) == 3枚举1,2,3,4分别进行测试即可2printf("%c\n",(*numToName.find(x)).second);//注意map返回的是first和second*/#include <stdio.h>#include <map>#include <iostream>#include <vector>using namespace std;void process(){map<int,char> numToName;char ch = 'a';for(int i = 1 ; i <= 4 ; i++){numToName.insert(make_pair<int,char>(i,ch));ch++;}for(int x = 1 ; x <= 4 ; x++){if( ((x != 1) + (x == 3) + (x == 4) + (x != 4)) == 3 ){printf("%c\n",(*numToName.find(x)).second);//注意map返回的是first和secondbreak;}}}int main(int argc,char* argv[]){process();getchar();return 0;}
0 0
- 算法设计与分析:第一张 算法分析介绍 1.2逻辑推理之警察抓小偷
- 算法设计与分析:第一张 算法分析介绍 1.3逻辑推理之谁能预测分数
- 算法设计与分析之棋盘算法
- 警察抓小偷
- 警察抓小偷
- bfs 警察抓小偷
- 算法分析与设计
- 算法设计与分析
- 算法分析与设计
- 算法设计与分析
- 算法设计与分析
- 算法分析与设计
- 算法设计与分析
- 算法设计与分析
- 算法设计与分析
- 算法设计与分析
- 算法设计与分析
- 算法设计与分析
- 算法设计与分析: 第一章 算法分析介绍 1.1求任意三个已知数的最小公倍数
- 【CODEFORCES】 F. Ant colony
- HMM最佳范例链接
- Linux 共享库
- Cardboard虚拟现实开发初步(二)
- 算法设计与分析:第一张 算法分析介绍 1.2逻辑推理之警察抓小偷
- SDUT2015暑假集训14级周赛1 B - 皇马(组合数)
- C#模板引擎 RazorEngine3.7的简单使用
- Android内存泄露调试
- leetcode:Longest Substring Without Repeating Characters
- 我读过的最好的epoll讲解
- 算法设计与分析:第一张 算法分析介绍 1.3逻辑推理之谁能预测分数
- libgdx常用网站
- [leetcode 70]Climbing Stairs