[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. GCC中通过--wrap选项使用包装函数
  2. Windows Azure Virtual Machine (34) Azure VM挂载WebDAV
  3. 2.3.3 Softmax回归介绍
  4. 第18次csp认证 201912-2 回收站选址(C++)
  5. inside uboot (六) DRAM芯片的控制线及时序
  6. Redis悲观锁、乐观锁和调用Lua脚本的优缺点
  7. binding.BindingException: Invalid bound statement (not found): xxx → dao接口和mapper.xml映射文件绑定异常
  8. SpringBoot前端Ajax以JSON格式获取后台数据
  9. CSS 实现行内和上下自适应的几种方法
  10. 自己动手,在macOS High Sierra中编译一个可debug的JDK
  11. android rs232串口协议,RS232串口协议详解-在路上.PDF
  12. 高性能计算机介绍,曙光个人高性能计算机介绍
  13. 上手阿里云服务器(一)——搭建LAMP开发环境、防火墙、文件传输
  14. C语言应用到SSD,SSD1963的样例程序 c语言驱动读写程序.doc
  15. Android 项目必备(二十九)-->App 在线升级与更新
  16. 【论文翻译】Learning Generalizable and Identity-Discriminative Representations for Face Anti-Spoofing
  17. 巡检报告实例-Python脚本生成
  18. RabbitMQ学习笔记(高级篇)
  19. 成功的软件开发者需要掌握人际技能的3个原因
  20. 【优化选址】基于遗传算法求解物流选址问题附matlab代码

热门文章

  1. In-App Purchases入门
  2. 简单Case函数和Case搜索函数的区别
  3. 爬取智联招聘有用信息存入数据库
  4. HTTPS那些事(一)HTTPS原理
  5. java-php-python-ssm基于个人阅读习惯的个性化推荐系统研究计算机毕业设计
  6. 使用贝塞尔曲线设计飞升动画
  7. WDQ.ERP.K3Cloud.Util使用文档
  8. python数据预处理的方法_文本数据预处理的方法
  9. Linux 硬盘分区、分区命名和分区格式化
  10. 第03章 窗口和消息