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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1468 派对灯 Party Lamps(BIG 模拟)

發布時間:2023/12/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1468 派对灯 Party Lamps(BIG 模拟) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
在IOI98的節日宴會上,我們有N(10<=N<=100)盞彩色燈,他們分別從1到N被標上號碼。 這些燈都連接到四個按鈕:

按鈕1:當按下此按鈕,將改變所有的燈:本來亮著的燈就熄滅,本來是關著的燈被點亮。

按鈕2:當按下此按鈕,將改變所有奇數號的燈。

按鈕3:當按下此按鈕,將改變所有偶數號的燈。

按鈕4:當按下此按鈕,將改變所有序號是3*K+1(K>=0)的燈。例如:1,4,7…

一個計數器C記錄按鈕被按下的次數。當宴會開始,所有的燈都亮著,此時計數器C為0。

你將得到計數器C(0<=C<=10000)上的數值和經過若干操作后某些燈的狀態。寫一個程序去找出所有燈最后可能的與所給出信息相符的狀態,并且沒有重復。

輸入輸出格式
輸入格式:
不會有燈會在輸入中出現兩次。

第一行: N。

第二行: C最后顯示的數值。

第三行: 最后亮著的燈,用一個空格分開,以-1為結束。

第四行: 最后關著的燈,用一個空格分開,以-1為結束。

輸出格式:
每一行是所有燈可能的最后狀態(沒有重復)。每一行有N個字符,第1個字符表示1號燈,最后一個字符表示N號燈。0表示關閉,1表示亮著。這些行必須從小到大排列(看作是二進制數)。

如果沒有可能的狀態,則輸出一行’IMPOSSIBLE’。

輸入輸出樣例
輸入樣例#1:
10
1
-1
7 -1
輸出樣例#1:
0000000000
0101010101
0110110110
說明
在這個樣例中,有三種可能的狀態:

所有燈都關著

1,4,7,10號燈關著,2,3,5,6,8,9亮著。

1,3,5,7,9號燈關著,2, 4, 6, 8, 10亮著。

翻譯來自NOCOW

USACO 2.2
這個題讀題真的很難,有點惡心,看了一晚上,包括翻題解,才明白樣例是什么!尷尬有點小蔡。
這個代碼,不是我原創,我寫了將近兩倍長的,我覺得他寫的很好,很短就拿來學一下,還有搜索過不了!!!!!

#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int h[9][7]= {{},{0,0,0,0,0,0}, //1{0,0,0,1,1,1}, //34{1,0,1,0,1,0}, //2{1,0,1,1,0,1}, //4{0,1,0,0,1,0}, //14{0,1,0,1,0,1}, //3{1,1,1,0,0,0}, //24{1,1,1,1,1,1} //0 }; int n,c,on[101],off[101]; inline void work(int w[9]) {int flag=1;for(int k=1; k<=w[0]; k++){int tag=0;for(int i=1; i<=on[0]; i++)if(!h[w[k]][on[i]%6]){tag=1;break;}if(tag) continue;for(int i=1; i<=off[0]; i++)if(h[w[k]][off[i]%6]){tag=1;break;}if(tag) continue;flag=0;for(int i=1; i<=n; i++)printf("%d",h[w[k]][i%6]);printf("\n");}if(flag) printf("IMPOSSIBLE");exit(0); } int main() {int tmp;scanf("%d%d",&n,&c);while(1){scanf("%d",&tmp);if(tmp==-1) break;on[++on[0]]=tmp;}while(1){scanf("%d",&tmp);if(tmp==-1) break;off[++off[0]]=tmp;}if(c==0){int w[9]={1,8};work(w);}if(c==1){int w[9]= {4,1,3,4,6};work(w);}if(c==2){int w[9]= {7,1,2,3,5,6,7,8};work(w);}if(c>2){int w[9]= {8,1,2,3,4,5,6,7,8};work(w);}return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的P1468 派对灯 Party Lamps(BIG 模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。