子集和問題

2021-09-29 02:18:53 字數 841 閱讀 2122

1277: 子集和問題

時間限制: 1 sec  記憶體限制: 128 mb

提交: 30  解決: 8

您該題的狀態:已完成

[提交][狀態][討論版]

題目描述

【問題描述】對於乙個給定正整數的集合s=和正整數c,程式設計計算s的乙個子集s1,使得子集s1的和等於c。

【輸入格式】

第一行有2個正整數n和c,第二行有n個正整數

【輸出格式】 

一行資料,按輸入的順序輸出,若無解則輸出"no solution!"

【輸入樣例】

5 10

2 2 6 5 4

【輸出樣例】

2 2 6

【問題規模】

n<7000,c

/*這道題和整數湊和差不多,只不過沒要求要選擇一定量的元素,

但是應該注意當所有元素和都小於c時,

都不可能有解,此時如果呼叫dfs(),

要遍歷所有組合才能得到無解結論,會超時

所以預判一下。 

*/ #include#includeusing namespace std;

long long mat[7009];

int vis[7009];

long long a[7009];

long long c;

int flag,n;

int dfs(long long sum,int k)

for(int i=0;i}

return 0;

}int main()

if(sumelse

return 0;

}

子集和問題

題目描述 子集和問題的乙個例項為 s,t 其中,s 是乙個正整數的集合,c是乙個正整數。子集和問題判定是否存在s的乙個子集s1,使得s1中的各元素之和等於c。題目出自 計算機演算法設計與分析 第3版 王曉東 思路 用回溯法解這道題,我本來想修改排列樹使之可以求出乙個集合的所有子集。但是分析了一下,時...

子集和問題

問題描述 子集和問題的乙個實力為。其中,s 是乙個正整數的集合,c是乙個正整數。判定是否存在s的乙個子集s1使得s1的和為c。輸入 輸入含多組測試用例!對每組測試用例,第一行有兩個正整數n和c,n表示s的大小,c是子集和的目標值。接下來的一行,有n個正整數 1 n 10000 表示集合s中的元素。當...

子集和問題

今天程式考試受挫,遂打算寒假空閒時間刷刷題,練練手感。今天有一題是這樣的,檔案 data.txt 有n 1行,每一行都為乙個正整數,第一行為n,剩餘n行為任意n個正整數。對於正整數m m 2 輸出m個數的和,要求和不大於100,並列出表示式 並且要求表示式不相同。若表示式中的元素相同則表示式就相同,...