首页 > 代码库 > 哪几个人参加了会议?
哪几个人参加了会议?
有人邀请A,B,C,D,E,F6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知:
1.A,B两人至少有1人参加会议。2.A,E,F3人中有2人参加会议。
3.B和C两人一致决定,要么两人都去,要么两人都不去。
4.A,D两人中只1人参加会议。
5.C,D两人中也只要1人参加会议。
6.如果D不去,那么E也决定不去。那么最后究竟有哪几个人参加了会议呢?
简单推理,暴力枚举~
答案是:A,B,C,F
#include<cstdio> #include<cstdlib> #include<cmath> #include<map> #include<queue> #include<stack> #include<vector> #include<algorithm> #include<cstring> #include<string> #include<iostream> #define ms(x,y) memset(x,y,sizeof(x)) const int MAXN=1000+10; const int INF=1<<30; using namespace std; int n=6; int A[100]; bool J1() { if(A[1] || A[2]) return 1; return 0; } bool J2() { if((A[1] && A[5] && A[6]==0) || (A[1] && A[5]==0 && A[6]) || (A[1]==0 && A[5] && A[6])) return 1; return 0; } bool J3() { if(A[2] && A[3]) return 1; if(A[2]==0 && A[3]==0) return 1; return 0; } bool J4() { if(A[1] && A[4]==0) return 1; if(A[1]==0 && A[4]) return 1; return 0; } bool J5() { if(A[3] && A[4]==0) return 1; if(A[3]==0 && A[4]) return 1; return 0; } bool J6() { if(A[4]==0 && A[5]) return 0; return 1; } bool judge() { if(J1() && J2() && J3() && J4() && J5() && J6()) return 1; return 0; } void dfs(int cnt, int mark) { A[cnt]=mark; if(cnt==n){ if(judge()){ for(int i=1; i<=n; i++) if(A[i]) cout<<char(i+'A'-1)<<" "; cout<<endl; } return; } dfs(cnt+1, 0); dfs(cnt+1, 1); } int main() { //freopen("in.txt","r",stdin); dfs(0,0); return 0; }
哪几个人参加了会议?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。