Spring Aop 自定義註解實現使用者登入日誌
阿新 • • 發佈:2022-04-02
kiki's game
題目描述
最近琪琪無所事事。 當她無聊的時候,一個想法出現在他的腦海裡,她只是玩棋盤遊戲。 棋盤的大小是n*m。 首先,將一枚硬幣放在右上角(1,m)。 每次有一個人可以把硬幣移到左邊,下面或左下角的空白區域。 不能動的人就會輸掉這場遊戲。 琪琪和zz一起玩,遊戲總是以琪琪開始。 如果雙方都能完美髮揮,誰將贏得比賽?
輸入示例
輸入: 5 3
輸出: What a pity!
解釋: kiki輸掉了這場比賽。
輸入: 5 4
輸出: Wonderful!
解釋: kiki贏了這場比賽。
解題思路
巴什博弈的資料:
只要把PN狀態圖描繪出來就行了:
P:面對P時先手必輸
N:面對N時先手必勝
現在關於P,N的求解有三個規則。
(1):最終態都是P,可以理解成對方已經到達了終點,然後自己選擇。
(2):按照遊戲規則,到達當前態的前態都是N的話,當前態是P
(3):按照遊戲規則,到達當前態的前態至少有一個P的話,當前態是N
當n=8
,m=9
時的PN圖如下:
N | N | N | N | N | N | N | N |
---|---|---|---|---|---|---|---|
P | N | P | N | P | N | P | N |
N | N | N | N | N | N | N | N |
P | N | P | N | P | N | P | N |
N | N | N | N | N | N | N | N |
P | N | P | N | P | N | P | N |
N | N | N | N | N | N | N | N |
P | N | P | N | P | N | P | N |
- 先將終點標記為P,P所能到的地方標記為N。
- 然後沿著兩邊填,因為原來最左邊沿只能向下走,最底部只能往左走。
- 然後填寫中間的內容。
程式碼
if(n%2==0||m%2==0) return true;
else return false;