1. 程式人生 > >【牛客 - 210A】遊戲(思維,腦洞)

【牛客 - 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");
	}
}