蓝桥杯 逻辑推断类型题目
来源:互联网 发布:数据库范式的算法例题 编辑:程序博客网 时间:2024/05/10 10:06
题目描述:
A,B,C,D,E,F,G,H,,I,J共10名学生有可能参加本次计算机竞赛,也可能不参加,因为某种原因,他们是否参赛受到下列条件的约束:
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必须参加
请变成根据这些条件判断这10名同学中参赛者名单,如果有多种可能,则输出所有的可能。
每种情况占一行,参赛同学按字母升序排列,空格分隔。
比如:C D G J
就是一种可能情况
解题思路:
建立一个数组,用对应的每个元素的值(为1表示参加比赛,0表示不参加比赛)来表示最后是否参加比赛。
通过递归实现这10个学生的所有参赛情况(也就是通过递归遍历出一个10为的二进制的所有可能的值)。
然后通过judge函数对这每一种情况进行判断,对于符合条件的进行输出。
其中:
1. 如果A参加,B也参加 A->B <==> !A || B
2. 如果C不参加,D也不参加 !C->!D <==>C || !D
3. A和C中只能有一个人参加 A和C参加比赛的人数小于1
4. B和D中有且仅有一个人参加 B和D参加比赛的人数等于1
5. D,E,F,G,H,中至少有2人参加 D,E,F,G,H中参加的人数大于等于2
6. C和G或者都参加,或者都不参加
7. C,E,G,I中至多只能2人参加 C,E,G,HI参加的人数小于等于2
8. 如果E参加,那么F和G也都参加 E->F && G
9. 如果F参加,G,H就不能参加 F->!G && !H
10.如果I,J都不参加,H必须参加 !I && !J -> H
程序代码:
#include<iostream>using namespace std;void show(int *a){for(int i=0;i<10;i++){if(a[i]>0){cout<<char('A'+i)<<" ";}}cout<<endl;}int judge(int *a){int b[10];b[0] = a[0]==0 || a[1]==1;b[1] = a[2]==1 || a[3]==0;b[2] = a[0]+a[2] <= 1;b[3] = a[1]+a[3] == 1;b[4] = a[3]+a[4]+a[5]+a[6]+a[7] >= 2;b[5] = (a[2]+a[6]==0) || (a[2]+a[6]==2);b[6] = a[2]+a[4]+a[6]+a[8] <=2;b[7] = a[4] == 0 || (a[5]+a[6]==2);b[8] = a[5] == 0 || (a[6]+a[7]==0);b[9] = (a[8]+a[9]>0) || a[7]==1;int tag=1;for(int i=0;i<10;i++){tag = b[i]&&tag;}return tag;}void fun(int *a,int n){if(n>=10){if(judge(a)){show(a);}return;}a[n] = 0;fun(a,n+1);a[n] = 1;fun(a,n+1);}int main(){int a[10];fun(a,0);return 0;}
输出结果:
C D G J
C D G H
C D G H J
B C G H
B C G H J
- 蓝桥杯 逻辑推断类型题目
- 全国软件设计大赛题目-逻辑推断题目
- 蓝桥杯逻辑推断题
- 逻辑推断
- 逻辑推断
- 蓝桥杯 逻辑推断 DFS+n个if
- 类型推断
- 类型推断
- 逻辑推断题
- 6.6 类型推断
- 6.6 类型推断
- Objective-C类型推断
- 【Swift】类型推断
- 类型推断 var
- Lambda表达式类型推断
- 记录草稿---类型推断
- C++类型推断
- 变量-类型推断
- 浏览器 CSS 兼容写法的测试总结
- 基础练习 十进制转十六进制
- 【经验】Java中引用同一个object造成的bug
- 在SQL2008中,如何让id自动生成并自动递增?如何让时间默认生成?
- A Mathematical Curiosity
- 蓝桥杯 逻辑推断类型题目
- [数据结构]对链表、栈、队列的总结
- 纯 CSS 实现三角形尖角箭头的实例
- 4.3 Activity的停止和重新启动
- CSS中RGBA的兼容方法以及透明度计算方法
- 一份招PHP高级工程师的面试题
- 算法导论学习 之 顺序统计量的O(n)算法
- 编译GDB(主要针对LINUX平台)
- PIE使用阴影后的背景透明方法