時間限制: 1 sec 記憶體限制: 128 mb
提交: 4 解決: 3
您該題的狀態:已完成
[提交][狀態][討論版]
題目描述
已知 n 個整數b1,b2,…,bn
以及乙個整數 k(k<n)。
從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。
例如當 n=4,k=3,4 個整數分別為 3,7,12,19 時,可得全部的組合與它們的和為:
3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。
現在,要求你計算出和為素數共有多少種。
例如上例,只有一種的和為素數:3+7+19=29。
輸入
第一行兩個整數:n , k (1<=n<=20,k<n)
第二行n個整數:x1,x2,…,xn (1<=xi<=5000000)
輸出
乙個整數(滿足條件的方案數)。
樣例輸入
4 33 7 12 19
樣例輸出
1總結:
將數字存入陣列中,按照排列得方式累加,注意排列不能重複。
累加後判斷是否為素數,若為加一,反之不變。
資料回溯時注意將資料減去。
#include#includeusing namespace std;
int ans,sum=0,k,n,a[21],b[21]=,c[21];
bool prime(int x)
return true;
} void dfs(int step)
return ;
} for(int i=1;i<=n;i++) }}
int main()
ans = 0;
dfs(1);
cout
}
XYNUOJ 1275 組合的輸出
時間限制 1 sec 記憶體限制 128 mb 提交 17 解決 9 提交 狀態 討論版 問題描述 從n個數中取出r個元素,輸出所有組合 輸入格式 一行兩個自然數n和r 1 輸出格式 所有的組合,每個組合佔一行,其中的元素從小到大排序,用乙個空格隔開,所有組合按字典序。輸入樣例 5 3 輸出樣例 1...
xynuoj1326 組合的輸出 dfs
時間限制 1 sec 記憶體限制 128 mb 提交 10 解決 6 提交 狀態 討論版 edit testdata 排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素 不分順序且r n 我們可以簡單地將n個元素理解為自然數1,2,n,從中任取r個數。現要求你不用遞迴的方法輸出所有組合...
1033 遞迴3(組合 判斷素數)
時間限制 1 sec 記憶體限制 128 mb 提交 1015 解決 584 提交 狀態 討論版 題目描述 題意 已知 n 個整數 x1,x2,xn,以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 3,7,12,19 時...