逻辑推断
来源:互联网 发布:python编程(第四版) 编辑:程序博客网 时间:2024/04/30 22:30
1. 如果A参加,B也参加;
2. 如果C不参加,D也不参加;
3. A和C中只能有一个人参加;
4. B和D中有且仅有一个人参加;
5. D、E、F、G、H 中至少有2人参加;
6. C和G或者都参加,或者都不参加;
7. C、E、G、I中至多只能2人参加
8. 如果E参加,那么F和G也都参加。
9. 如果F参加,G、H就不能参加
10. 如果I、J都不参加,H必须参加
比如:
C D G J
就是一种可能的情况。
多种情况的前后顺序不重要
dlb
解题思路:
显然题目输出的是所有可能性,所以穷举就ok,但我在做题时,犯了一个错误,就是没用数组,
导致
5. D、E、F、G、H 中至少有2人参加;
7. C、E、G、I中至多只能2人参加
这两条语句表达起来有点麻烦,
但题目要去是输出所有可能性,所以即使不用数组:即暂时忽略这两条语句,代码如下,以后再在得出的结论中找到符合这两条语句的例子
另写一代码,输出即可
代码:
#include<iostream>
using namespace std;
int a,b,c,d,e,f,g,h,i,j;
bool judge(){
if(a==1&&b==0){
return 0;
}
if(c==0&&d==1){
return 0;
}
if(a==1&&c==1){
return 0;
}
if((b==1&&d==1)||(b==0&&d==0)){
return 0;
}
if((c==0&&g==1)||(c==1&&g==0)){
return 0;
}
if(e==1&&(f==0||g==0)){
return 0;
}
if(f==1&&(g==1||h==1)){
return 0;
}
if((i==0&&j==0)&&h==0){
return 0;
}
return 1;
}
int main(){
for(a=0;a<2;a++)
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
for(f=0;f<2;f++)
for(g=0;g<2;g++)
for(h=0;h<2;h++)
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(judge()){
if(a==1)cout<<"A"<<" ";
if(b==1)cout<<"B"<<" ";
if(c==1)cout<<"C"<<" ";
if(d==1)cout<<"D"<<" ";
if(e==1)cout<<"E"<<" ";
if(f==1)cout<<"F"<<" ";
if(g==1)cout<<"G"<<" ";
if(h==1)cout<<"H"<<" ";
if(i==1)cout<<"I"<<" ";
if(j==1)cout<<"J"<<" ";
cout<<endl;
}
return 0;
}
总结: 对于这种题型,不必想的太复杂,在做题中要以最快的方式最简单的方法做完。
if((b==1&&d==1)||(b==0&&d==0))第一次做没注意运算符的优先性问题,,忘了加括号,导致错误,,所以在今后的做题中一定要避免这种问题。
- 逻辑推断
- 逻辑推断
- 蓝桥杯逻辑推断题
- 逻辑推断题
- 蓝桥杯 逻辑推断类型题目
- 全国软件设计大赛题目-逻辑推断题目
- 蓝桥杯 逻辑推断 DFS+n个if
- 根据数据库的结构来推断他的逻辑功能
- t检验与F检验 /统计常识 / 统计学笔记(2)--随机抽样与统计推断的逻辑
- 类型推断
- 类型推断
- 关系推断
- 数字推断
- 贝叶斯推断 2. 统计推断
- 逻辑
- 逻辑
- 逻辑
- 逻辑
- PB 如何把结构作为参数传递
- [BestCoder] Round #5
- CF #289 E. Pretty Song
- 浅层网路regression杂记
- [BestCoder] Round #6
- 逻辑推断
- .bash_profile和.bashrc的区别(如何设置生效)
- 开启我的CSDN之旅,开博杂谈。
- 归并排序
- C++——宏观了解
- could not translate tablespace name "TEST_TBS"
- 信号机制
- Hive优化
- 利用AC自动机进行关键字的提取和过滤