問題 c: 【遞迴入門】組合+判斷素數
時間限制: 1 sec 記憶體限制: 128 mb
提交: 2125 解決: 615
[提交][狀態][討論版][命題人:外部匯入]
題目描述
已知 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
#include
using std::vector;
typedef
long
long ll;
const
int maxn =25;
int n,k;
int count =0;
ll a[maxn]
, res[maxn]
;bool hashtable[maxn]=;
bool
isprime
(ll x)
return
true;}
void
bfs(
int index,
int r)if(
isprime
(sum)
==true
)// printf("\n");
}return;}
for(
int i = index; i <= n;
++i)}}
intmain
(int argc,
char
const
*ar**)
bfs(1,
1);printf
("%d\n"
, count)
;return0;
}
#include
#include
#include
using std::vector;
typedef
long
long ll;
const
int maxn =25;
int n,k;
int count =0;
ll a[maxn]
;int sum =0;
bool
isprime
(ll x)
return
true;}
void
bfs(
int index,
int r)
return;}
for(
int i = index; i <= n;
++i)
}int
main
(int argc,
char
const
*ar**)
bfs(1,
1);printf
("%d\n"
, count)
;return0;
}
問題 C 遞迴入門 組合 判斷素數
題目描述 已知 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...
問題 C 遞迴入門 組合 判斷素數
題目描述 已知 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...
遞迴入門 組合 判斷素數
時間限制 1 sec 記憶體限制 128 mb 已知 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...