1. 程式人生 > >夢工廠實驗室 取石子之fans 博弈

夢工廠實驗室 取石子之fans 博弈

相同 div mst 輸出 amp 而是 status 提交 .cn

問題 D: 取石子之fans

時間限制: 1 Sec 內存限制: 64 MB
提交: 57 解決: 26
[提交][狀態][討論版]

題目描述

Yougth和Hrdv玩一個遊戲,拿出n個石子擺成一圈,Yougth和Hrdv分別從其中取石子,誰先取完者勝,每次可以從中取一個或者相鄰兩個(註意不是“兩個”而是“相鄰兩個”),Yougth先取,兩個人足夠聰明,不會拿錯。輸出勝利者的名字。

輸入

輸入包括多組測試數據。
每組測試數據一個正整數n,數據保證int範圍內。

輸出

輸出勝利者的名字。

樣例輸入

2
3

樣例輸出

Yougth
Hrdv
這個題可以看成是對稱的博弈。可以這樣想,將這堆石子分成兩堆完全相等的石子堆,無論自己做出什麽狀態的策略,對方只要在另一堆采取相同的策略就可以回到初始狀態(雙方相等的狀態),最後自己這一堆先沒了石子,對手則取走對手堆的最後一塊,所以這是必敗態,而面對N>2 石子 對手都可以使之變成兩堆相等的石子,做出對稱狀態在完全模擬對手常常是有效的


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include
<stack> #include<queue> #include<vector> #include<algorithm> using namespace std; int main() { int n,i,j; while(~scanf("%d",&n)){ if(n<=2) printf("Yougth\n"); else printf("Hrdv\n"); } return 0; } /************************************************************** Problem: 1548 User: 2016207228 Language: C++ Result: 正確 Time:0 ms Memory:1084 kb ***************************************************************
*/

夢工廠實驗室 取石子之fans 博弈