/*某任务需要在a b c d e五个人中物色人员去完成,但是有一些条件 (1) 若a去,则b也去. (2) d e两人必有人去 (3) b c中只去一人 (4) c d两人要么都去,要么都不去 (5) 若e 去,则a b都去*/ #include<iostream> #include<time.h> #include<bitset> using namespace std; void print(int i); void main() { clock_t start=clock(); for(int i=0;i<32;i++) { if(i>>4 && !((i&8)>>3)) continue; if(!((i&2)>>1) && !(i&1)) continue; if(((i&8)>>3)==((i&4)>>2)) continue; if(((i&4)>>2)!=((i&2)>>1)) continue; if((i&1) && !((i>>4) && ((i&8)>>3))) continue; print(i); } cout<<(clock()-start)/CLK_TCK<<endl;
} void print(int i) { cout<<((i&16)?" a ":"~a")//?:操作符输出时数据类型要相同 <<((i&8)?" b ":"~b") <<((i&4)?" c ":"~c") <<((i&2)?" d ":"~d") <<((i&1)?" e ":"~e")<<endl; }