【牛客 - 210A】游戏(思维,脑洞)
題干:
BLUESKY007,fengxunling和dreagonm三個人發現了一個像素游戲,這款神奇的游戲每次會生成一個nxm的網格,其中每一個格子都被隨機染色為R,G,B三種顏色之一,每次都可以選擇任意一個非B顏色的格子進行一次操作,每次操作都會滿足以下規則:
1.操作的范圍為從整個網格的左上角到選定方格的矩形區域
2.操作區域內所有方格都遵循變換
3.第一個不能執行操作的人為失敗者,且按操作順序在失敗者之前的人取勝
為了能讓BLUESKY007感到快樂(照顧到BLUESKY007是個蒟蒻),fengxunling和dreagonm的操作都盡可能的讓BLUESKY007取勝,她們想知道在操作順序為的情況下,失敗者是誰.
?
輸入描述:
題目有多組數據 第一行一個整數t,表示數據組數 對于每組數據,第一行兩個整數n,m,接下來n行每行m個字符輸出描述:
輸出共t行,每行一個字符串表示答案?
示例1
輸入
復制
2 3 3 RGG BBG RRR 3 3 GRB RGR RBG輸出
復制
dreagonm fengxunling備注:
對于的數據, 對于另的數據, 對于的數據,題目大意:
? ?每次都可以選擇一個非B格子(i,j),使得(1,1)~(i,j)所圍起來的矩形都變化一次,問操作到不能操作的時候,誰輸了。
解題報告:
? ?又被智商壓制了、、、看來真的是玩不過OI的啊,初中高中生的腦子就是不一樣、、、
-----
其實只需要看左上角就行了,因為題目描述寫的很清楚,三個人的操作都是為了
BLUESKY007能贏,所以游戲一定會結束,那么當橫縱坐標最大的非 B 顏色方格變為 B 顏
色時,可操作的方格范圍顯然是趨向收斂的,又因為操作規則的要求,左上角的方格在每
次操作中都會按規則進行變換,當可操作范圍收斂到左上角且左上角變為 B 顏色時,游
戲結束,所以無論中間的操作是怎樣進行的,最終左上角的方格一定會變為 B 顏色,而且
進行操作的人數和操作變換長度相同,所以我們只需要判斷左上角方格的顏色即可。
-----
? ? 以上是標準題解,簡單來說,結束時一定是所有的都變成B了,那么左上角就是B,因為每次都參與變化了,又恰好設計了RGB三色且是三個人玩,所以只跟最開始的左上角格子有關。。那些盡量讓誰誰誰獲勝啊啥的一切策略都是沒用的擺設、、、
? ? 其實你要知道啊,有的時候題意之所以晦澀難懂,其實就是想讓你跟隨他想讓你想的思維方向。你想遠了,自然就覺得題意難懂。其實照著這個思路如果是我造題,題意也得這么寫,就挺清楚了啊:比如告訴你一切操作就是為了讓某個人贏,其實是為了告訴你這游戲是收斂的,結果是存在的。
AC代碼:
#include<bits/stdc++.h> using namespace std; char maze[1000 + 5][1000 + 5]; int main() {int t;cin>>t;int n,m;while(t--) {scanf("%d%d",&n,&m);for(int i=0; i<n; i++) {cin>>maze[i];}if(maze[0][0]=='R') puts("dreagonm");else if(maze[0][0]=='G') puts("fengxunling");else puts("BLUESKY007");} }?
總結
以上是生活随笔為你收集整理的【牛客 - 210A】游戏(思维,脑洞)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一次办信用卡哪个银行好 “知己知彼”成
- 下一篇: 【HDU - 5015 】233 Mat