日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Party Lamps chapter 2.2

發(fā)布時間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Party Lamps chapter 2.2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? 又是來回2次等于沒按,一個結(jié)構(gòu)體 no3odd,speodd,no3even,speeven代表非-1%3 奇數(shù)偶數(shù),普通奇數(shù)偶數(shù)。

然后當(dāng)按1-4次時,歸納出1次對應(yīng)4種情況,2次對應(yīng)0次和2種各一次(1+6),3次對應(yīng)(1,3)(4+4),4次對應(yīng)(0,2,4)(1+6+4)

超過4以后的偶數(shù)情況等同于4,偶數(shù)等同于3

?

隨后根據(jù)C取值枚舉便可

?

/*ID: hubiao cavePROG: lampsLANG: C++*/#include<iostream>#include<fstream>#include<string> #include<set>using namespace std;struct Bu {bool no3even;bool speeven;bool no3odd;bool speodd;Bu(){}Bu(int _noev,int _spee,int _no,int _sp):no3even(_noev),speeven(_spee),no3odd(_no),speodd(_sp){;} };Bu buf[4][6]={{Bu(0,0,0,0),Bu(1,1,0,0),Bu(0,0,1,1),Bu(1,0,1,0)} ,{Bu(0,0,1,1),Bu(1,1,0,0),Bu(0,1,0,1),Bu(0,0,0,0),Bu(1,0,0,1),Bu(0,1,1,0)} ,{Bu(1,1,1,1),Bu(0,1,1,0),Bu(1,0,0,1),Bu(0,1,0,1)} ,{Bu(1,0,1,0)}}; /* 只按1次,4種 只按2次 可能是兩種燈6,也可能是1種燈重復(fù)相當(dāng)沒按0 只按3次 同理相當(dāng)于1種等,或者3種燈 只按4次 相當(dāng)0,2,4 往后奇數(shù)次 與只按3相同,偶數(shù)次與4相同 */set<string> ss;int main(){ifstream fin("lamps.in");ofstream fout("lamps.out");int no3even=-1,speeven=-1,no3odd=-1,speodd=-1;int N,C;fin>>N>>C;int lampOn,lampOff;while(fin>>lampOn,lampOn!=-1){if(lampOn%2==0){if((lampOn-1)%3==0){speeven=1;continue;}else{no3even=1;continue;}}else{if((lampOn-1)%3==0){speodd=1;continue;}else{no3odd=1;continue;}}}while(fin>>lampOff,lampOff!=-1){if(lampOff%2==0){if((lampOff-1)%3==0){if(speeven==1){fout<<"IMPOSSIBLE"<<endl;return 0;}speeven=0;continue;}else{if(no3even==1){fout<<"IMPOSSIBLE"<<endl;return 0;}no3even=0;continue;}}else{if((lampOff-1)%3==0){if(speodd==1){fout<<"IMPOSSIBLE"<<endl;return 0;}speodd=0;continue;}else{no3odd=0;if(no3odd==1){fout<<"IMPOSSIBLE"<<endl;return 0;}continue;}}}if(C==0){if(no3even==0||no3odd==0||speodd==0||speeven==0){fout<<"IMPOSSIBLE"<<endl;return 0;}string str;for(int i=1;i<=N;++i){str+='1';}fout<<str<<endl;return 0;}if(C<=4){switch(C%4){case 1:{for(int i=0;i<=3;i++){if(buf[0][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[0][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[0][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[0][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int i=1;i<=N;i++){if(i%2==0){if((i-1)%3==0)str+='0'+buf[0][i].speeven;elsestr+='0'+buf[0][i].no3even;}else{if((i-1)%3==0)str+='0'+buf[0][i].speodd;elsestr+='0'+buf[0][i].no3odd;}}ss.insert(str);}break;}case 2:{string str;for(int i=1;i<=N;i++){str+='1';if(i==N)ss.insert(str);}for(int i=0;i<=5;i++){if(buf[1][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[1][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[1][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[1][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int i=1;i<=N;i++){if(i%2==0){if((i-1)%3==0)str+='0'+buf[1][i].speeven;elsestr+='0'+buf[1][i].no3even;}else{if((i-1)%3==0)str+='0'+buf[1][i].speodd;elsestr+='0'+buf[1][i].no3odd;}}ss.insert(str);}break;}case 3:{for(int i=0;i<=3;i++){if(buf[0][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[0][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[0][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[0][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[0][i].speeven;elsestr+='0'+buf[0][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[0][i].speodd;elsestr+='0'+buf[0][i].no3odd;}}ss.insert(str);}for(int i=0;i<=3;i++){if(buf[2][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[2][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[2][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[2][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[2][i].speeven;elsestr+='0'+buf[2][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[2][i].speodd;elsestr+='0'+buf[2][i].no3odd;}}ss.insert(str);}break;}case 0:{string str;for(int i=1;i<=N;i++){str+='1';if(i==N)ss.insert(str);}for(int i=0;i<=5;i++){if(buf[1][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[1][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[1][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[1][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[1][i].speeven;elsestr+='0'+buf[1][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[1][i].speodd;elsestr+='0'+buf[1][i].no3odd;}}ss.insert(str);}for(int i=0;i<1;i++){if(buf[3][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[3][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[3][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[3][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[3][i].speeven;elsestr+='0'+buf[3][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[3][i].speodd;elsestr+='0'+buf[3][i].no3odd;}}ss.insert(str);}}break;}}else{if(C%2){for(int i=0;i<=3;i++){if(buf[0][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[0][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[0][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[0][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[0][i].speeven;elsestr+='0'+buf[0][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[0][i].speodd;elsestr+='0'+buf[0][i].no3odd;}}ss.insert(str);}for(int i=0;i<=3;i++){if(buf[2][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[2][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[2][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[2][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int i=1;i<=N;i++){if(i%2==0){if((i-1)%3==0)str+='0'+buf[2][i].speeven;elsestr+='0'+buf[2][i].no3even;}else{if((i-1)%3==0)str+='0'+buf[2][i].speodd;elsestr+='0'+buf[2][i].no3odd;}}ss.insert(str);}}else{if(no3even==0||no3odd==0||speodd==0||speeven==0){;}else{string str;for(int i=1;i<=N;i++){str+='1';if(i==N)ss.insert(str);}}for(int i=0;i<=5;i++){if(buf[1][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[1][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[1][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[1][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[1][i].speeven;elsestr+='0'+buf[1][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[1][i].speodd;elsestr+='0'+buf[1][i].no3odd;}}ss.insert(str);}for(int i=0;i<1;i++){if(buf[3][i].no3even!=no3even){if(no3even!=-1)continue;}if(buf[3][i].speeven!=speeven){if(speeven!=-1)continue;}if(buf[3][i].no3odd!=no3odd){if(no3odd!=-1)continue;}if(buf[3][i].speodd!=speodd){if(speodd!=-1)continue;}string str;for(int j=1;j<=N;j++){if(j%2==0){if((j-1)%3==0)str+='0'+buf[3][i].speeven;elsestr+='0'+buf[3][i].no3even;}else{if((j-1)%3==0)str+='0'+buf[3][i].speodd;elsestr+='0'+buf[3][i].no3odd;}}ss.insert(str);}}}if(ss.empty()){fout<<"IMPOSSIBLE"<<endl;return 0;}for(set<string>::iterator it=ss.begin();it!=ss.end();it++){fout<<*it<<endl;}return 0;}

?

轉(zhuǎn)載于:https://www.cnblogs.com/cavehubiao/p/3306570.html

總結(jié)

以上是生活随笔為你收集整理的Party Lamps chapter 2.2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。