挑戰程式設計競賽(3)

2021-09-10 05:05:46 字數 1359 閱讀 9674

給定整數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

#includeint a[25];

long long n,k;

bool dfs(long long i,long long sum)

int main()

}}void solve()}}

printf("%d\n", res);//dfs的次數即為水窪數量

}int main()}}

solve();

}}

breadth-first search,簡稱bfs,從某個狀態出發探索所有可以到達的狀態。

給定乙個大小為n×m的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四個的通道移動。請求出從起點到終點所需的最小步數。請注意,本題假定從起點一定可以移動到終點。(n,m≤100)('#', '.' , 's', 'g'分別表示牆壁、通道、起點和終點)

輸入:

10 10

#s######.#

......#..#

.#.##.##.#

.#........

##.##.####

....#....#

.#######.#

....#.....

.####.###.

....#...g#

輸出:

22
#include#includeusing namespace std;

const int inf = 100000000, maxn = 105;

typedef pairp;

char maze[maxn][maxn];//表示迷宮的字串的陣列

int n, m, sx, sy, gx, gy;//s起點,g終點座標

int d[maxn][maxn];//到各個位置的最短距離的陣列

int dx[4] = , dy[4]= ;//4個方向移動的向量

int bfs()//求從(sx,sy)到(gx,gy)的最短距離,若無法到達則是inf}}

return d[gx][gy];

}int main()

挑戰程式設計競賽 樹

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

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

首先明確此為0和博弈問題,我們始終以ali cealice alic e的觀點來看待問題。定義ali cealice alic e贏為可解.因此我們採用記憶化搜尋,整個搜尋空間最多為o x p o xp o xp 便可以解決此問題。include includeusing namespace std...

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

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