sincerit 2147 kiki的遊戲(簡單博弈論)
阿新 • • 發佈:2018-11-05
2147 kiki的遊戲
時間限制:5000/1000 MS(Java / Others)記憶體限制:40000/10000 K(Java / Others)
總提交內容:13657接受提交內容:8344
問題描述
最近kiki無事可做。雖然她很無聊,但他腦子裡出現了一個想法,她只是玩棋盤遊戲。主機板的大小是n * m。首先,硬幣放在右上角(1,m)。每次一個人可以將硬幣移動到左側,下方或左下方的空白區域。無法移動的人將失去遊戲。kiki與ZZ一起玩。遊戲總是以kiki開頭。如果兩者都能完美髮揮,誰將贏得比賽?
輸入
輸入包含多個測試用例。每行包含兩個整數n,m(0 <n,m <= 2000)。當n = 0且m = 0時,輸入終止。
產量
如果kiki贏得遊戲printf“精彩!”,否則“真可惜!”。
樣本輸入
5 3
5 4
6 6
0 0
樣本輸出
What a pity!
Wonderful!
Wonderful!
題目可以列舉小的規模找規律 1 * 1 , 1 * 2, 1 * 3, 2 * 1, 2 * 2 , 2 * 3 …
依次遞推可以得出各個規模的勝敗情況:
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
NNNNNNNNN
PNPNPNPNP
每一個的點根據n * m的奇偶判斷勝敗,n*m為奇數則必敗,為偶數必勝
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
int n, m;
while (cin >> n >> m, n||m) {
if ((n*m) % 2 == 0) cout << "Wonderful!\n";
else cout << "What a pity!\n";
}
return 0;
}