取石子(七)(NYOJ 833)
阿新 • • 發佈:2019-02-19
取石子(七)
時間限制:1000 ms | 記憶體限制:65535 KB 難度:1- 描述
-
Yougth和Hrdv玩一個遊戲,拿出n個石子擺成一圈,Yougth和Hrdv分別從其中取石子,誰先取完者勝,每次可以從中取一個或者相鄰兩個,Hrdv先取,輸出勝利著的名字。
- 輸入
- 輸入包括多組測試資料。
每組測試資料一個n,資料保證int範圍內。 - 輸出
- 輸出勝利者的名字。
- 樣例輸入
-
2 3
- 樣例輸出
-
Hrdv Yougth
剛開始看這道題以為是巴什博弈問題,其實根本就不是,題目的敘述是將所有的石子擺成一圈,而巴什博弈是離散的,不符合這一題的要求。
假設石子數等於5,如果先者先取一個,那麼後者拿走兩個,將剩下的兩個石子分成兩堆,後者贏。如果先者先取二個,那麼後者取一個使剩下的兩個石子分成兩堆,後者贏。
假設石子數等於6,如果先者先取一個,那麼後者拿走一個,將剩下的石子分成兩段,每段兩個,如果先者再拿兩個,那麼後者贏,如果先者再拿一個,那麼後者再取另一堆中的一個,這樣剩下的兩個石子被分成兩堆, 後者贏。 如果先者先取兩個,那麼後者也取兩個使剩下的兩個石子分成兩堆,後者贏。
所以當先者取走後,後者取走一個或者兩個,將剩下的石子分成對稱的兩段,以此類推,那麼如果石子數大於2後者一定贏。
#include <stdio.h> int main (void) { int n; while (scanf("%d", &n) != EOF) { if(n > 2) printf("Yougth\n"); else printf("Hrdv\n"); } return 0; }