time limit: 10 sec
memory limit: 256 mb
submit: 42
solved: 29 [
submit][
status][
discuss]
lyp和ld在乙個n*m的棋盤上玩翻轉棋,遊戲棋盤座標假設為(x, y),1 ≤ x ≤ n,1 ≤ y ≤ m,這個遊戲的遊戲的的遊戲規則如下:
每次可以操作座標為 (x, y) 的棋子,要求棋子 (x, y) 必須是黑色,並且同時翻轉所有棋子座標 (x』, y』) 滿足 x』≤x, y』≤y。
lyp覺得這樣還不夠過癮,於是乎他打算同時玩 k 個這樣的遊戲, 每次可以對其中某乙個遊戲進行操作,lyp先手,ld後手,兩人輪流進行操作,最後無法進行操作的人判輸,現在給你這個遊戲的局面,要求輸出是先手必勝(「lyp win」)還是後手必勝(「ld win」)。
第一行乙個數t,表示資料組數。
接下來t組資料,對於每一組資料:
接下來一行乙個數k,表示有多少個遊戲在進行中,
接下來k部分,每部分第一行兩個數n,m表示棋盤大小,
接下來n行,每行m個數,0 表示這個棋子是白色,1表示為黑色,第一行第一列代表棋子座標(1,1)。
對於每一組資料,換行輸出先手必勝(「lyp win」)還是後手必勝(「ld win」),輸出不包含引號。 1
12 2
1 11 0
lyp win
為什麼這麼水的題沒人寫。。
只要(1,1)是黑色那麼先手必勝,否則先手必敗
證明很簡單:
很顯然每個人無論怎麼操作都一定會改變格仔(1,1)的顏色,而當面對全白色的人必敗,證畢
而這題是多個棋盤,那就和尼姆博奕一樣麼,將所有結果異或起來就ok了
用gets()不要太快,直接從1000ms+變成76ms
#includechar str[10005];
int main(void)
if(ans)
printf("lyp win\n");
else
printf("ld win\n");
} return 0;
}
bzoj4131 並行博弈 博弈論
題目大意 題目鏈結。注釋 略。想法 我們發現無論如何操作都會使得 1,1 發生改變。所以單個 acg 的勝利條件就是 1,1 是否為黑色。如果為黑色那麼可以讓它變成白的。接下來無論對手如何操作都可以通過翻轉 1,1 使得進入對手回合。那麼多個 acg 相加就是取異或和即可。code include ...
bzoj 1022 博弈 Anti Nim(模板)
具體證明請見賈志豪大犇的2009 orz,這裡直接貼結論 對於anti sg 的 1 如果所有子遊戲的sg異或和 0且所有子遊戲的sg 1則先手必勝 2 如果所有子遊戲的sg異或和 0且存在子遊戲的sg 1則先手必勝 兩種情況都不滿足的則先手必輸 var t,n,cnt,tot longint i ...
bzoj4550 小奇的博弈
這個遊戲是在乙個1 n的棋盤上進行的,棋盤上有k個棋子,一半是黑色,一半是白色。最左邊是白色棋子,最右邊是黑色棋子,相鄰的棋子顏色不同。小奇可以移動白色棋子,提比可以移動黑色的棋子,它們每次操作可以移動1到d個棋子。每當移動某乙個棋子時,這個棋子不能跨越兩邊的棋子,當然也不可以出界。當誰不可以操作時...