【描述】
dragon同學最近經常和dick同學玩一種取石子遊戲:開始有一堆共n顆石子,dragon和dick輪流從這對石子中取走不超過m顆石子,取走最後一顆石子的人就輸了。dragon博士不夠聰明,總是輸了。怎麼辦呢?dragon博士就來請教聰明的你,給定n、m,假定dragon博士先取,到底他是否有必勝的把握呢?
【輸入格式】
有多組輸入。
每行兩個正整數n、m,意義如上文。
【輸出格式】
對於每組輸入輸出一行,如果有必勝的把握則輸出『your are stupid.』否則輸出『that』s a pity』。
【樣例輸入】
5 13 3
【樣例輸出】
that』s a pity
your are stupid.
【分析】
設f[m][n]表示m的限制下,剩下n個石子,可不可以必勝。我們看f[m][n-1]~f[m][n-m],如果其中有乙個必敗的狀態,那麼f[m][n]就是必勝,否則為必敗。
預先把所有的f[m][n]都算出來。
#include #define maxn 110bool f[maxn][maxn];
int tot,n,m;
bool can;
int main()
}f[m][n]=can;
}while (scanf("%d%d",&n,&m)!=eof)
return 0;
}
整數劃分(動歸)
將n分為若干個不同整數的和,有多少種不同的劃分方式,例如 n 6,共4種。由於資料較大,輸出mod 10 9 7的結果即可。input 輸入1個數n 1 n 50000 output 輸出劃分的數量mod 10 9 7。sample input6sample output4 include incl...
動歸 編輯距離
設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元 皆為小寫字母!輸入格式 第一行為字串a 第二行為字串b 字串a和b的長度均小於2000。輸出格式 只有乙個正整數,為最少字元操作次數。輸...
動歸 道路遊戲
題目描述 小新正在玩乙個簡單的電腦遊戲。遊戲中有一條環形馬路,馬路上有n 個機械人工廠,兩個相鄰機械人工廠之間由一小段馬路連線。小新以某個機械人工廠為起點,按順時針順序依次將這n 個機械人工廠編號為1 n,因為馬路是環形的,所以第n 個機械人工廠和第1 個機械人工廠是由一段馬路連線在一起的。小新將連...