首先明確此為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,就是你贏,否則就是你的朋友贏。你挑戰了好幾回,結果一次也沒贏過,於是怒而撕破口袋,取出所有紙片,檢查自己是否真的有贏的可能性。請你編寫乙...