当前位置: 首页 > news >正文

P1036 [NOIP 2002 普及组] 选数

题目描述

已知 n 个整数 x1,x2,⋯,x**n,以及 1 个整数 kk<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(1≤n≤20,k<n)。

第二行 n 个整数,分别为 x1,x2,⋯,x**n(1≤x**i≤5×106)。

输出格式

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

输入输出样例

输入 #1复制运行

4 3
3 7 12 19

输出 #1复制运行

1

说明/提示

【题目来源】

NOIP 2002 普及组第二题



Code

//自己优化版本  86分(已经够用了)#include<bits/stdc++.h>
using namespace std;
vector<vector<long long>> result;
vector<long long> path;   
long long k;
long long n;
//dfs  获得所有组合(从n个数里面选k个数)
void dfs(long long start,vector<long long>& x)
{long long size = path.size(); if(size==k){result.push_back(path);return;}for(long long i=start;n-i>=k-size;i++){  //剪枝path.push_back(x[i]);dfs(i+1,x);path.pop_back();}
}
//判断是否是素数
bool Prime(long long val) 
{if(val<2) return false;if(val==2) return true;if (val % 2 == 0) return false; // 跳过偶数,提升效率long long limit = sqrt(val);  // 用整数平方根,避免pow的精度误差for(long long i=3;i<=limit;i+=2){  // 改:从3开始,步长2 (因为前面已经跳过偶数了,若对2求余不为0,那么对任何偶数求余都不为0)if(val%i==0){return false;}}return true;
}
int main(void)
{cin >> n >> k;vector<long long> x(n,0);for(long long i =0;i<n;i++){cin >> x[i];}dfs(0,x);vector<long long> sum(result.size(),0);//用sum数组记录每一个组合的和for(long long i=0;i<result.size();i++){for(long long j=0;j<result[i].size();j++){sum[i]+=result[i][j];}}int ans = 0;for(long long i=0;i<sum.size();i++){if(Prime(sum[i])){ans++;}}cout << ans << "\n";return 0;
}
  • dfs遍历得到所有组合(注意是组合,不要搞成排列)
  • dfs中的剪枝n-i>=k-size ,提前结束不可能选够 k 个数的循环,少做无用功!公式:n - i >= 剩下要选的个数
  • 素数的剪枝(非常巧妙,可通用)
http://www.jsqmd.com/news/561378/

相关文章:

  • Qwen-Image-Edit-F2P模型安全:Token身份认证机制设计
  • 深入J-Link RTT缓冲区:从阻塞/非阻塞模式选择到彩色日志打印的进阶玩法
  • 3种方法让VR视频在普通屏幕播放:VR-Reversal工具全解析
  • 如何在VirtualBox的openKylin虚拟机中设置与主机的共享目录(v0.1.0)
  • # 发散创新:基于物理光照模型的实时渲染优化实践 在现代图形学中,**光照模型
  • LinkSwift:八大网盘直链解析神器,告别限速下载困扰
  • 智能体或将改变互联网安全范式
  • FreeRTOS任务切换时,Cortex-M内核的PSP和MSP指针到底怎么变?一个动画讲清楚
  • TurboQuant 技术革命:打破大模型私有化部署的显存壁垒,重构主权 AI 的基础设施边界
  • 把AI率降到20%以内:嘎嘎降AI vs 比话降AI vs 率零哪个更稳?
  • 从电机控制到UI设计:用STM32CubeMX快速实现洗衣机原型开发
  • GB28181国标设备注册源码实现
  • 深度神经网络的底层数学原理
  • 无人机电调DIY改造指南:从MOSFET选型到散热优化(附实测数据)
  • 影刀RPA与Python变量管理:全局与局部变量的实战应用
  • 基于Fish-Speech-1.5的智能客服语音合成实战
  • AI率降到20%以内用哪个平台检测最准?知网/维普/万方深度对比
  • 大数据领域数据标准化:促进数据驱动创新
  • 海外短剧系统开发全案:多语言 + 多支付 + 全球 CDN 一站式交付
  • S3Browser跨域配置实战:从复制示例到调试成功的完整避坑指南
  • 医药行业全终端销售分析:从院内到院外,构建全景监控体系
  • Stata小白必看:手把手教你搞定ivreghdfe离线安装(附Windows/Mac路径设置避坑)
  • 免费工具能把AI率降到20%以内吗?免费vs付费效果实测对比
  • PingFangSC字体实战指南:跨平台字体解决方案的最佳实践
  • 防盗门焕新纪实
  • Calibre电子书管理:如何从数据混乱到智能分类的蜕变?
  • SEM图像质量提升秘籍:二次电子与背散射电子的9种信号特性全解析
  • 从ENIAC到SoC:聊聊PLA在数字电路发展史中的位置与局限
  • 2026年市面上比较好的雨棚厂商口碑推荐,封阳台/雨棚/系统窗/凉亭/系统门窗/肯德基门/阳光房,雨棚公司推荐分析 - 品牌推荐师
  • GaaS-2026年最赚钱的软件商业模式