1008 选数

2002年NOIP全国联赛普及组

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

已知 n 个整数 x1,x2,…,xn,以及一个整数 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)。

输入描述 Input Description

 键盘输入,格式为:
  n , k (1<=n<=20,k<n)
  x1,x2,…,xn (1<=xi<=5000000)

输出描述 Output Description

屏幕输出,格式为:
  一个整数(满足条件的种数)。

样例输入 Sample Input

4 3
3 7 12 19

样例输出 Sample Output

1

数据范围及提示 Data Size & Hint

(1<=n<=20,k<n)
(1<=xi<=5000000)

注意:可以用记录前驱结点的方法来判重

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN=;
int a[MAXN];
int tot=;
int ans[MAXN];
int vis[MAXN];
int now=;
int n,m;
int num;
int flag[MAXN];
int pd(int n)
{
for(int i=;i<=sqrt(n);i++)
{
if(n%i==)
return ;
}
return ;
}
void dfs(int p,int ed)
{
if(p==m)
{
int maxn=;
for(int i=;i<=m;i++)
{
maxn=maxn+ans[i];
}
if(pd(maxn)==)
{
num++;
}
return ;
}
for(int i=ed;i<=n;i++)
{
ans[now]=a[i];
now++;
flag[i]=;
dfs(p+,i+);
now--;
ans[now]=;
flag[i]=;
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
tot=tot+a[i];
}
/*for(int i=2;i<=sqrt(tot);i++)
{
if(vis[i]==0)
{
for(int j=i*i;j<=tot;j=j+i)
{
vis[j]=1;
} }
}*/
dfs(,);
printf("%d",num);
return ;
}

最新文章

  1. &lt;&lt;&lt; html图片背景平铺
  2. 服务 在初始化安装时发生异常:System.IO.FileNotFoundException: &quot;file:///D:\testService&quot;未能加载文件或程序集。系统找不到指定文件。
  3. (原创)用Receiver和SystemService监听网络状态,注册Receiver的两种方式
  4. Struts2入门3 深入学习
  5. SharePoint 中用户控件的开发及应用
  6. Android中解析XML
  7. Ajax、反向Ajax和WebSocket 概念
  8. GDCPC2016 省赛随笔
  9. rm -rf删除过多文件提示参数过长
  10. Android LIstView初次创建getview方法执行多次问题
  11. linux 错误总结
  12. Codeforces 543C Remembering Strings(DP)
  13. 遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件
  14. 强大而容易学的JavaScript初学者可以看看。
  15. 你在为谁工作——IT帮深圳分站2019年3月线下活动回顾
  16. vue--子组件主动获取父组件的数据和方法
  17. Struts和Hibernate使用总结
  18. JVM学习网址(收集总结)
  19. tyvj1953 Normal
  20. STL 排序(转载)

热门文章

  1. WPF架构分析
  2. 对于makefile传递参数的一些问题
  3. TCP 协议的消息
  4. Java中的内部类介绍(1)
  5. json格式化插件
  6. window下redis如何查看版本号
  7. day1 java基础
  8. 第二课2、ROS
  9. Spring入门第十课
  10. POJ 2311 Cutting Game (博弈)