挑戰程式設計競賽 硬幣遊戲

2021-09-24 20:07:57 字數 682 閱讀 4232

首先明確此為0和博弈問題,我們始終以ali

cealice

alic

e的觀點來看待問題。定義ali

cealice

alic

e贏為可解.

因此我們採用記憶化搜尋,整個搜尋空間最多為o(x

p)o(xp)

o(xp

), 便可以解決此問題。

#include#includeusing namespace std;

const int max = 10000+4;

const int maxk = 105;

int dp[max][2];

int a[maxk];

int x, k;

int dfs(int x, int p)}}

dp[x][p] = win;

return win;

}if(p == 1)}}

dp[x][p] = win;

return win;

}}int main()

return 0;

}

挑戰程式設計競賽(3)

給定整數a1,a2,an,判斷是否可以從中選出若干數,使他們的和恰好為k。1 n 20 1e8 ai 1e8 1e8 k 1e8 樣例1input 4 1 2 4 7 13 output yes 13 2 4 7 樣例2input 4 1 2 4 7 15 output no dfs include...

挑戰程式設計競賽 樹

二叉樹的表達 樹的遍歷 從根r到結點x的路徑長度為x的深度 depth 結點x到葉結點的最大路徑長度成為結點x的高。請編寫乙個程式,輸出給定有根樹t中各節點u的資訊。採用 左子右兄弟表示法 1 結點u的父節點 2 結點u最左側的子結點 3 結點u右側緊鄰的兄弟結點 引用u.parent即可知道結點u...

ACM挑戰程式設計競賽1 1抽籤

試題描述 你的朋友提議玩乙個遊戲 將寫有數字的n 個紙片放入口袋中,你可以從口袋中抽取4 次紙片,每次記下紙片上的數字後都將其放回口袋中。如果這4 個數字的和是m,就是你贏,否則就是你的朋友贏。你挑戰了好幾回,結果一次也沒贏過,於是怒而撕破口袋,取出所有紙片,檢查自己是否真的有贏的可能性。請你編寫乙...