題目描述:
已知 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
#include
using
namespace std;
#define n 20
int n,k;
int x[n]
;//存放輸入的n位整數
int visit[n]
;//標誌k位加數中有哪些被佔
int look[n]
;//標誌n位整數中哪些被佔
int a[n]
;//標誌k位加數分別是哪些
int result=0;
//判斷是否為素數
intfun
(int x)
}return0;
}void
dfs(
int step)
cout<
cout<
//判斷和是否為素數if(
!fun
(sum)
)return;}
int j;
for(
int i=
0;iif(look[i]==0
&&x[i]
>a[j-1]
)}}int
main()
dfs(0)
; cout<
}
1-2行:輸入;
3-6行:全部組合
7行:最終和為素數的組合個數
因為不能測試,所以也不知道超時了沒有~
如有不對,請各位大佬指教!嘻嘻嘻~
dfs組合 判斷素數
遞迴入門 組合 判斷素數 時間限制 1 sec 記憶體限制 128 mb 提交 205 解決 77 提交 狀態 討論版 命題人 外部匯入 題目描述 已知 n 個整數b1,b2,bn 以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整...
DFS 3 組合 判斷素數
problem 已知 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...
XYNUOJ1327 組合 判斷素數 DFS
時間限制 1 sec 記憶體限制 128 mb 提交 4 解決 3 您該題的狀態 已完成 提交 狀態 討論版 題目描述 已知 n 個整數b1,b2,bn 以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 3,7,12,19...