牛客 210A 遊戲(思維,腦洞)

2021-08-29 02:04:14 字數 1679 閱讀 2163

題幹:

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 3rgg

bbgrrr

3 3grb

rgrrbg

複製

dreagonm

fengxunling

對於的資料, 

對於另的資料,

對於的資料,

題目大意:

每次都可以選擇乙個非b格仔(i,j),使得(1,1)~(i,j)所圍起來的矩形都變化一次,問操作到不能操作的時候,誰輸了。

解題報告:

又被智商壓制了、、、看來真的是玩不過oi的啊,初中高中生的腦子就是不一樣、、、

其實只需要看左上角就行了,因為題目描述寫的很清楚,三個人的操作都是為了

bluesky007能贏,所以遊戲一定會結束,那麼當橫縱座標最大的非 b 顏色方格變為 b 顏

色時,可操作的方格範圍顯然是趨向收斂的,又因為操作規則的要求,左上角的方格在每

次操作中都會按規則進行變換,當可操作範圍收斂到左上角且左上角變為 b 顏色時,遊

戲結束,所以無論中間的操作是怎樣進行的,最終左上角的方格一定會變為 b 顏色,而且

進行操作的人數和操作變換長度相同,所以我們只需要判斷左上角方格的顏色即可。

以上是標準題解,簡單來說,結束時一定是所有的都變成b了,那麼左上角就是b,因為每次都參與變化了,又恰好設計了rgb三色且是三個人玩,所以只跟最開始的左上角格仔有關。。那些盡量讓誰誰誰獲勝啊啥的一切策略都是沒用的擺設、、、

其實你要知道啊,有的時候題意之所以晦澀難懂,其實就是想讓你跟隨他想讓你想的思維方向。你想遠了,自然就覺得題意難懂。其實照著這個思路如果是我造題,題意也得這麼寫,就挺清楚了啊:比如告訴你一切操作就是為了讓某個人贏,其實是為了告訴你這遊戲是收斂的,結果是存在的。

ac**:

#includeusing namespace std;

char maze[1000 + 5][1000 + 5];

int main()

if(maze[0][0]=='r') puts("dreagonm");

else if(maze[0][0]=='g') puts("fengxunling");

else puts("bluesky007");

}}

牛客,String of CCPC(思維)

題意 給定乙個長度為n的字串s n s n 只由c,p組成,定義s n 的價值為 s n 中不同的 ccpc 連續子串的個數。現可以向這個子串中插入乙個c,p,但第i次操作,需要消耗i 1的單位價值。求s n 的價值最大為多少。分析 稍微分析一下,可以發現,每次操作,最多只能使s n 的價值 1,假...

牛客 Shortest Path dfs 思維

非常巧妙的轉換。首先我們可以觀察性質,一條邊不可能出現兩次,因為顯然可以被更好的方案替代 之後,每個邊就存在選或者不選兩種情況 如果以子樹的節點為偶數,那麼就不需要,否則需要,做一下dfs即可 includeusing namespace std typedef long long ll const...

牛客賭神 反向思維

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 買定離手,買定離手!到底誰能捧盃本次新生賽?億電競的投資人 億大佬 向你介紹遊戲規則 你可以參與數次競猜,每次競猜都有兩個待選隊伍a和b 當然不是競猜新生賽的隊員哈 你...