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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

CodeForces - 1350E Orac and Game of Life(bfs)

發(fā)布時間:2024/4/11 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces - 1350E Orac and Game of Life(bfs) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:給出一個 n * m 的 01 矩陣,矩陣每一秒都會迭代,迭代規(guī)則如下:

  • 如果對于 ( x?, y?) 格子而言,四周相鄰的格子 ( xx , yy ) 均滿足 maze[ x ][ y ] != maze[ xx ][ yy ] ,則 maze[ x ][ y ] 不變
  • 否則 maze[ x ][ y ] ^ = 1
  • 給出 q 個詢問,每個詢問問格子 ( x , y ) 在第 t 秒迭代后的數(shù)字為多少

    題目分析:直接用題解的話來說吧,滿足規(guī)則 1 的點我們稱為 good 點,其余的點稱為 bad 點,每次迭代,當(dāng)且僅當(dāng)某個點為 good 點時才發(fā)生迭代,而對于 bad 點而言,如果四周存在至少一個 good 點,那么該 bad 點在完成一輪迭代后也會變成 good 點,反之不變

    換句話說, good 點是會不斷擴散的,而 bad 點的數(shù)量相應(yīng)是不增加的,這樣我們就能用 bfs 求出任意一個點 ( x , y ) 在整個過程中是否會發(fā)生迭代,在第幾秒時會發(fā)生迭代,當(dāng)求出這些信息后,就能 O(1) 回答所有詢問了

    至于 bfs ,可以視為多源 bfs ,將初始時為 good 的點全部加入到隊列中,然后不斷擴散就好了,最后判斷的時候:

  • 如果點 ( x , y ) 不會發(fā)生迭代,那么直接輸出 maze[ x ][ y ] 即可
  • 如果點 ( x , y ) 發(fā)生了迭代:
  • 如果當(dāng)前時間 t 小于點 ( x , y ) 的起始迭代時間,說明該點還沒有發(fā)生迭代,輸出 maze[ x ][ y ] 即可
  • 否則根據(jù) t 與 開始迭代的時間之差的奇偶性來輸出
  • 代碼:

    #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e3+100;const int b[4][2]={0,1,0,-1,1,0,-1,0};int n,m,q;int maze[N][N],f[N][N];bool vis[N][N];bool check(int x,int y) {for(int i=0;i<4;i++){int xx=x+b[i][0];int yy=y+b[i][1];if(xx<=0||yy<=0||xx>n||yy>m)continue;if(maze[x][y]==maze[xx][yy])return true;}return false; }void bfs() {queue<pair<int,int>>q;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(check(i,j)){q.push(make_pair(i,j));vis[i][j]=true;f[i][j]=0;}while(q.size()){int x=q.front().first;int y=q.front().second;q.pop();for(int i=0;i<4;i++){int xx=x+b[i][0];int yy=y+b[i][1];if(xx<=0||yy<=0||xx>n||yy>m)continue;if(vis[xx][yy])continue;f[xx][yy]=f[x][y]+1;vis[xx][yy]=true;q.push(make_pair(xx,yy));}} }int main() { #ifndef ONLINE_JUDGE // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); #endif // ios::sync_with_stdio(false);scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%1d",&maze[i][j]);bfs();while(q--){int x,y;LL t;scanf("%d%d%lld",&x,&y,&t);if(vis[x][y])//進行過迭代 {if(f[x][y]>t)//沒到迭代時間 printf("%d\n",maze[x][y]);elseprintf("%d\n",maze[x][y]^((t-f[x][y])&1));}else//沒進行過迭代 printf("%d\n",maze[x][y]);}return 0; }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的CodeForces - 1350E Orac and Game of Life(bfs)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 日日噜噜夜夜狠狠久久波多野 | 欧美精品在线观看 | 美女啪啪动态图 | 午夜影院免费看 | 黄色99 | 波多野吉衣一区二区 | 视色网站 | 黄页网站在线播放 | 一级淫片免费 | 久操久热 | 4438x全国最大成人 | 污色视频 | 免费裸体美女网站 | 免费av小说 | 成人开心网| 国产精品不卡在线观看 | 亚洲精品国产成人久久av盗摄 | 美女视频黄是免费 | 小箩莉末发育娇小性色xxxx | 色91精品久久久久久久久 | 日韩在线一级 | 国产视频1| 91综合色| 少妇高潮一区二区三区 | 欧美色老头old∨ideo | 久久精品福利 | 免费av网页 | 成人黄色激情 | 97精品国产97久久久久久免费 | 邵氏电影《金莲外传2》免费观看 | 久99| 久久天天东北熟女毛茸茸 | 欧美三级影院 | 玉蒲团在线 | 欧美三级视频 | 免费看国产视频 | 欧美亚洲欧美 | 激情无码人妻又粗又大 | 欧美午夜激情影院 | 久久九九国产精品 | 风间由美av| 91亚洲精华国产精华精华液 | 伊人网av在线| 岛国片在线播放 | 自拍偷拍第 | 婷婷麻豆| 午夜不卡在线 | 国产欧美精品久久 | 日韩精品一区二区三区久久 | 森泽佳奈中文字幕 | 亚洲av无码一区二区二三区 | 久久久精品网 | 国产50页| 亚洲国产乱| 极品白嫩丰满少妇无套 | 涩涩99| 免费人成年激情视频在线观看 | 免费看av软件| 中国肥胖女人真人毛片 | 国产淫视 | 日本免费黄色小视频 | aaaaa一级片 色图社区 | 一区二区三区四区精品 | 久久亚洲综合 | 狠狠a | 国产+高潮+白浆+无码 | 一区二区三区四区五区在线视频 | 91高清视频在线 | 97国产| 国产九色av | 老司机午夜性大片 | 国产欧美在线精品日韩 | 色婷婷在线视频 | 亚洲va天堂va欧美ⅴa在线 | 欧美成人a交片免费看 | 亚州a级片 | free性护士vidos猛交 | 亚洲美女自拍偷拍 | 清冷男神被c的合不拢腿男男 | 亚洲欧美成人 | 夫妻精品| 成人午夜毛片 | 国产高清视频免费观看 | 欧美激情综合色综合啪啪五月 | 艳妇乳肉豪妇荡乳av | 国产精品无码电影在线观看 | 男男做性免费视频网 | 91麻豆蜜桃| 午夜神马影院 | 日韩天堂av | 免费毛片看片 | 欧美性大交 | 久久精品国产久精国产 | 成人av免费在线 | 日本一区二区视频在线 | 久久久久久国产精品免费免费 | 日韩在线观看第一页 | 欧美18免费视频 | 99视频网|