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 ;
}

1008 选数 2002年NOIP全国联赛普及组的更多相关文章

  1. 选数 2002年NOIP全国联赛普及组

    题目描述 Description 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整 ...

  2. 1009 产生数 2002年NOIP全国联赛普及组

    1009 产生数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold   题目描述 Description 给出一个整数 n(n< ...

  3. codevs 1009 产生数 2002年NOIP全国联赛普及组 x (内附解析w)

                         题目描述 Description 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规 ...

  4. Codevs 1010 过河卒 2002年NOIP全国联赛普及组

    1010 过河卒 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 如图,A 点有一个过河卒 ...

  5. 1010 过河卒 2002年NOIP全国联赛普及组codevs

    1010 过河卒  2002年NOIP全国联赛普及组codevs 题目描述 Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点 ...

  6. 【动态规划】【记忆化搜索】CODEVS 1010 过河卒 2002年NOIP全国联赛普及组

    f(i,j)=f(i-1,j)+f(i,j-1),显然可以暴力递归求解,但是很多重复的状态,所以可以记忆下来. 注意障碍点和边界的特判. #include<cstdio> #include ...

  7. 1043 方格取数 2000年NOIP全国联赛提高组

    1043 方格取数 2000年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond         题目描述 Description 设有N* ...

  8. 1099 字串变换 2002年NOIP全国联赛提高组

    1099 字串变换 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 已知有 ...

  9. Codevs 1140 Jam的计数法 2006年NOIP全国联赛普及组

    1140 Jam的计数法 2006年NOIP全国联赛普及组 传送门 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Jam是个喜欢标 ...

随机推荐

  1. BZOJ3932:[CQOI2015]任务查询系统

    浅谈主席树:https://www.cnblogs.com/AKMer/p/9956734.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.p ...

  2. Ubuntu Hadoop环境搭建(Hadoop2.6.5+jdk1.8.0_121)

    1.JDK的安装 2.配置hosts文件(这个也要拷贝给所有slave机,scp /etc/hosts root@slave1:/etc/hosts) gedit /etc/hosts 添加: 122 ...

  3. ceph应用情况分析

    1.概述 ceph是分布式的开源存储系统,同时支持块存储.对象存储和文件系统,ceph可以满足高性能.高可靠性和高扩展等特性. 目前ceph作为开源分布式存储已经被大量使用,尤其是在云环境下的应用,下 ...

  4. maven工程导入eclipse后报错

    原因:需要重新部署下tomcat环境 解决方式: 右击->属性:

  5. HDU - 6114 2017百度之星初赛B Chess

    Chess  Accepts: 1805  Submissions: 5738  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32768 ...

  6. clone分支,修改文件本地commit后, push回原分支失败,处理方法

    从远程clone 一个仓库到本地仓库A后,由于有多个分支,经常需要切换,不同分支区别比较大,切换一下,需要重编译,于是又在本地clone了改动较大的一个分支F到仓库B: 在B仓库改动后,提交到A仓库的 ...

  7. DSOFramer控件使用注意事项

    1.引用dll==>AxInterop.DSOFramer.dll ==>Interop.DSOFramer.dll ==>WindowsFormsIntegration ==> ...

  8. MVC实用笔记

    ---------------------------- 渲染一个Action:@{Html.RenderAction("Rulelist", "AjaxReuqestD ...

  9. 网络性能优化GSO/GIO研究

    性能检测工具安装 # curl -O http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz # tar axf iperf-3.0.6.tar.gz ...

  10. JS中map list 数组的迭代

    后台传给前台一个map 前台如何迭代呢 $.post("getSys.jhtml", function(data){ var temp = ""; $.each ...