时间限制: 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)

传送门 点此展开

dfs

#include<iostream>
#include<cstring> using namespace std; int a[30]={0},c[30],n,m,minn,tot=0,l=0;
bool b[30];
int su(int x)
{
int j;
j=2;
while(j*j<x&&x%j!=0)
j++;
if(j*j>x)
return 1;
else
return 0;
}
void zcl(int k,int t,int l)
{
int i;
if(l>=m)
{
if(su(t)==1)
tot++;
return;
}
for(i=k+1;i<=n;++i)
zcl(i,t+a[i],l+1);
}
int main()
{
memset(b,0,sizeof(b));
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
zcl(0,0,0);
cout<<tot;
return 0;
}

最新文章

  1. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】
  2. Java高级规范之二
  3. Volley获取网络图片使用总结
  4. VRRP协议具体解释
  5. linxu命令小结
  6. 全然符合package.json在CommonJS中的规范
  7. ArcGIS API for JavaScript 4.2学习笔记[3] 官方第二章Mapping and Views概览与解释
  8. Linux企业运维人员最常用150个命令汇总
  9. Python基本知识
  10. 移动端目标识别(3)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之Running on mobile with TensorFlow Lite (写的很乱,回头更新一个简洁的版本)
  11. ftp 两台服务器传输文件 apache
  12. 桌面面板和内部窗体JDeskPane、JInternalFrame
  13. [转] mongoDB与mongoose
  14. LG3978 【[TJOI2015]概率论】
  15. openresty 使用lua-resty-shell 执行shell 脚本
  16. 记一次开发人员的奇葩操作-------导致root用户不能登录
  17. 【Mac】Docker安装及基础使用
  18. oracle/ms sql 系统表
  19. git客户端基本操作
  20. Android 应用程序的图标 (Icon) 应该设计成多大?

热门文章

  1. python 之队列
  2. 微信小程序开发之页面数据绑定
  3. Flutter实战视频-移动电商-33.列表页_子类和商品列表交互效果
  4. Gym 100851A Adjustment Office (思维)
  5. 洛谷 - P1829 - Crash的数字表格 - 莫比乌斯反演
  6. Codeforces 176B【计数DP】
  7. POJ3735【矩阵快速幂】
  8. HDU5119【dp背包求方案数】
  9. java日期时间处理集合
  10. unity 在移动平台中,文件操作路径详解