51nod 1268 和為K的組合 dfs

2022-04-21 18:10:48 字數 1029 閱讀 6319

題目:

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)

第2 - n + 1行:每行1個數,對應陣列的元素a[i] (1 <= a[i] <= 10^6)

output

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

5 1324

6810

output示例

no

思路:dfs搜尋,取或者不取。

**:

#include using

namespace

std;

typedef

long

long

ll;int a[22

];int

n,k;

bool flag = false

;void dfs(int x ,int

k)

if(flag) return

;

if(x == n) return

;

if(k < 0) return

; dfs(x+1

,k);

dfs(x+1,k-a[x]);

}int

main()

dfs(

0,k);

if(flag) cout << "

yes"

<

else cout << "no"

<

return0;

}//writen by zhangjiuding

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 ...