51Nod 1268 和為K的組合 DFS

2021-09-10 06:10:53 字數 808 閱讀 8336

題目

給出n個正整數組成的陣列a,求能否從中選出若干個,使他們的和為k。如果可以,輸出:"yes",否則輸出"no"。

輸入

第1行:2個數n, k, n為陣列的長度, k為需要判斷的和(2 <= n <= 20,1 <= k <= 10^9)。第2 - n + 1行:每行1個數,對應陣列的元素a[i] (1 <= a[i] <= 10^6)

輸出

如果可以,輸出:"yes",否則輸出"no"。

樣例輸入

5 1324

6810

樣例輸出

no
分析

由於n較小,因此可暴力深搜。

c++程式

#includeusing namespace std;

typedef long long ll;

const int n=21;

int a[n];

bool flag=false;

int n,k;

void dfs(int i,ll sum)

if(flag||i==n)

return;

dfs(i+1,sum+a[i]);

dfs(i+1,sum);}

int main()

51nod 1268 和為k的組合

1268 和為k的組合 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出n個正整數組成的陣列a,求能否從中選出若干個,使他們的和為k。如果可以,輸出 yes 否則輸出 no input 第1行 2個數n,k,n為陣列的長度,k為需要判斷的和 2 n 20,1 ...

51nod 1268 和為k的組合

基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 收藏 關注 給出n個正整數組成的陣列a,求能否從中選出若干個,使他們的和為k。如果可以,輸出 yes 否則輸出 no input 第1行 2個數n,k,n為陣列的長度,k為需要判斷的和 2 n 20,1 k 10 9...

51nod 1268 和為K的組合

1268 和為k的組合 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出n個正整數組成的陣列a,求能否從中選出若干個,使他們的和為k。如果可以,輸出 yes 否則輸出 no input 第1行 2個數n,k,n為陣列的長度,k為需要判斷的和 2 n 20,1 ...