[NOIP2002 普及组] 选数

题目描述

已知 n 个整数 x1,x2,x3,xn,以及 1 个整数 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(n <= 20,k<n)。第二行 n个整数)。

输出格式

输出一个整数,表示种类数。

样例 #1

样例输入 #1

4 3
3 7 12 19

样例输出 #1

1

提示

【题目来源】

NOIP 2002 普及组第二题

类似求组合数,就是dfs深搜。注意深搜如果用额外数组标记的话会wa,可能是因为这组数有重复。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>using namespace std;
typedef long long ll;
const int N = 21;
int a[N];
int s[N];
int n,k;
int cnt;bool isprime(ll x)
{for(int i = 2 ; i * i <= x ; i++){if(x % i == 0) return false;}return true;}void dfs(int u , int x)
{if( u > k){ll res = 0;for(int i = 1 ; i <= k ; i++) res += s[i];if(isprime(res)) cnt++;return ;}for(int i = x ; i <= n ; i++){s[u] = a[i];dfs(u+1,i+1);}}int main()
{scanf("%d%d",&n,&k);for(int i = 1 ; i <= n ; i++) scanf("%d",&a[i]);dfs(1,1);printf("%d",cnt);return 0;
}

NOIP 2002 普及组第二题相关推荐

  1. NOIP1996复赛 普及组 第二题 python

    http://noi.openjudge.cn/ch0108/02/ """ NOIP1996复赛 普及组 第二题 python1.8编程基础之多维数组 02 同行列对角 ...

  2. NOI Online #2 普及组 第二题:荆轲刺秦王

    NOI Online #2 普及组 第二题:荆轲刺秦王 前言 题目 解析 完整代码 前言 做题之前,让我们大吼几声: 你 这 个 " 良 心 " 出 题 人 ! \bold{\so ...

  3. 图书管理员【2017年普及组第二题】

    图书管理员图书管理员图书管理员 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一本书的图书编 ...

  4. 回文日期(NOIP2016 普及组第二题)

    描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期.显然:一个日期只有一种表示方法, ...

  5. 扫雷游戏(NOIP2015 普及组第二题)

    描述 扫雷游戏是一款十分经典的单击小游戏. 在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格). 玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有 ...

  6. 表达式求值(NOIP2013 普及组第二题)

    描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 格式 输入格式 输入仅有一行,为需要你计算的表达式,表达式中只包含数字.加法运算符"+"和乘法运算符" ...

  7. NOIP 2002普及组 过河卒详解

    本文图片引用自"kcfzyhq"的博客 1.分析 首先我们来看看下面这个图,这个图基本表现了题目的意思:一个卒要从图的左上角A点走到右下角B点,而其中有一点C为马的位置,C与其周边 ...

  8. 2012-2018普及组第一题题解

    noip2018 标题统计 [题目描述] 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字符数时,空格和换行符不计 ...

  9. NOIP 2011 普及组初赛试题——答案、分析、错题记录

    NOIP 2011 普及组初赛试题 单项选择题-答案 第 1 题 在二进制下,1011001 + ( ) = 1100110. A. 1011 B. 1101 C. 1010 D. 1111 第 2 ...

最新文章

  1. Network| ICMP
  2. netstat 相关命令解析
  3. [dp]leetcode 198. House Robber
  4. node 常用的一些终端的命令的快捷键
  5. CentOS 7 安装开发者环境
  6. with cube 与with rollup 在group by子句中
  7. html打印多了空白页,为什么打印Word文档会多打印出一空白页
  8. 快递查询接口-快递鸟对接方案
  9. AI技术是什么?AI对生活的影响有哪些?
  10. 仿写爱奇艺网页的问题和解决方法
  11. 密码库LibTomCrypt学习记录——(2.25)分组密码算法的工作模式——EAX加密认证模式
  12. 脚本调试sh -x xx.sh、set -x
  13. JSP 【基础】连接数据库的登录及验证
  14. 阿里云服务器(ECS)优惠券领取
  15. php中- gt 什么意思,php是什么意思啊_php代码中quot;-gt;quot;是什么意思
  16. H323——460NAT穿透相关
  17. 河南省计算机单招试题,2020年河南单招考试测试题
  18. 零基础的我刷力扣一周后,总结了点东西
  19. 跨界融合,链创未来——InterValue团队助力打造长沙市区块链公共服务平台
  20. 艾拉物联MaxPad、欧瑞博MixPad、如影inSight智慧中控性能大比拼

热门文章

  1. 蒋鑫鸿:9.8白银!沪银!期货白银!周四黄金价格走势分析及操作建议
  2. 实现树莓派homeassistant OS远程控制内网穿透--ddnsto教程
  3. Python + Appium 自动化操作微信入门
  4. 三分钟搞懂SQL的Case函数
  5. easyexcel基于模板的数据导出及自定义表头
  6. Python人脸识别项目-人脸识别-进行人脸识别
  7. 运算符+一个工具类(ysf)(zzzj)(gjl)
  8. CButton类的Create函数用法
  9. mysql 数据表读锁机制详解
  10. 人员定位助力智慧安全建设,化工厂实施人员定位管理迫在眉睫