网址如下:
P1036 [NOIP2002 普及组] 选数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
水个题
上次的枚举子集构建二叉树的那个在写这题的过程中又有了新思路
到时候去整一下
下午就要英语口语考试了
代码如下:
#include<cstdio>
#include<cmath>
const int maxn = 20;
int n, k, cnt;
int x[maxn];
bool is_s(int n){
for(int i = 2; i <= (int)sqrt((double)n); i++)
if(!(n % i)) return false;
return true;
}
void dfs(int cur, int s, int m){
if(m == k){
if(is_s(s)) cnt++;
return;
}
for(int i = cur; i <= n - (k - m); i++)
dfs(i + 1, s + x[i], m + 1);
}
int main(void)
{
scanf("%d%d", &n, &k);
for(int i = 0; i < n; i++) scanf("%d", &x[i]);
dfs(0, 0, 0);
printf("%d", cnt);
return 0;
}