時間限制:1000 ms | 記憶體限制:65535 kb
難度:2
描述給定整數a1、a2、.......an,判斷是否可以從中選出若干數,使它們的和恰好為k。
輸入首先,n和k,n表示數的個數,k表示數的和。 接著一行n個數。 (1<=n<=20,保證不超int範圍)
輸出如果和恰好可以為k,輸出「yes」,並按輸入順序依次輸出是由哪幾個數的和組成,否則「no」
樣例輸入
4 13樣例輸出1 2 4 7
yes題解:這題用動態規劃應該也能寫,且時間效率高,用揹包寫了下,果斷不對,思路有問題;2 4 7
1 #include2 #include3view codeusing
namespace
std;
4int m[21
],n,k;
5 stacknum;
6bool dfs(int temp,int
i)13
return
false;14
}15intmain()
25 puts(""
);26}27
else printf("
no\n");
28}29return0;
30 }
方法二:
1 #include2const
int maxn=21;3
intm[maxn],anser[maxn];
4int
ans,k,n;
5void dfs(int top,int num,int
sum)
13 puts(""
);14
return;15
}16if(num>=n||top>=n)return;17
for(int i=top;i)22}
23int
main()
30return0;
31 }
部分和問題 DFS
題目描述 給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入 有多組測試資料。每組測試資料兩行 第一行 正整數n 整數k,n表示數的個數,k表示數的和。第二行 n個數 輸出 每組測試資料,如果和恰好可以為k,輸出 yes 並按輸入順序依次輸出是由哪幾個數的和組成,否則 n...
部分和問題 簡單dfs
部分和問題 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入首先,n和k,n表示數的個數,k表示數的和。接著一行n個數。1 n 20,保證不超int範圍 輸出 如果和恰好可以為k,輸出 yes 並按...
NYOJ 部分和問題(DFS基礎)
題目描述 給定整數a1 a2 an,判斷是否可以從中選出若干數,使它們的和恰好為k。輸入首先,n和k,n表示數的個數,k表示數的和。接著一行n個數。1 n 20,保證不超int範圍 輸出如果和恰好可以為k,輸出 yes 並按輸入順序依次輸出是由哪幾個數的和組成,否則 no 樣例輸入 4 13 1 2...