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

广州C++信奥老师解一本通题 1919:【02NOIP普及组】选数

【题目描述】

已知nn个整数x1,x2,……xn 以及一个整数K(K<n)。从n个整数中任选K个整数相加,可分别 得到一系列的和。例如当n=4, k=3 4个整数分别为3,7,12,19 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个数

x1x2……xn(1≤xi≤5000000),各数之间用一个空格隔开)

【输出】

一个整数(满足条件的种数)。

【输入样例】

4 3 
3 7 12 19

【输出样例】

1

此题跟1317:【例5.2】组合的输出 解法类似

#include <bits/stdc++.h>
using namespace std;
long long path[21],a[21];  //path存放组合的元素的数字 
int n,k,ans=0;  
bool isPrime(long long n)
{if(n<=1)return false;for(int i = 2; i <= sqrt(n);i++)if(n % i == 0)return false;return true;
}
void dfs(int start,int cnt)
{if(cnt>k){long long sum=0; for(int i=1;i<=k;i++)sum+=path[i];if( isPrime(sum) )ans++;return;}for(int i=start;i<=n;i++) //递归尝试数组元素下标 1,2,3,4等 {path[cnt]=a[i];dfs(i+1,cnt+1);}
}
int main()
{cin>>n>>k;for(int i=1;i<=n;i++)cin>>a[i];memset(path,0,sizeof(path));dfs(1,1);cout<<ans;return 0;
}

http://www.lryc.cn/news/450286.html

相关文章:

  • cas5.3统一登录前后端分离改造方案(源码)
  • 【ComfyUI】控制光照节点——ComfyUI-IC-Light-Native
  • LVS+keepalived整合负载均衡配置
  • Goland无法使用debug的修复
  • MySQL和Doris开窗函数LAG执行时的区别
  • 都是小憨憨!
  • 高级java每日一道面试题-2024年9月30日-服务器篇[Redis篇]-Redis持久化有几种方式?
  • ICML 2024 论文分享┆一个简单且通用的交通预测提示调优框架
  • 【C++打怪之路Lv4】-- 类和对象(中)
  • 滚雪球学MySQL[1.1讲]:MySQL简介与环境配置
  • Llama微调以及Ollama部署
  • 中关村环球时尚产业联盟 东晟时尚产业创新中心成立
  • 基于SSM的宠物领养管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • 为什么要配置环境变量?
  • 条件熵公式详细解释、举例说明计算步骤
  • 颍川陈氏始祖陈寔逆势崛起的原由(一)不屈的努力
  • golang小项目1-家庭收支记账系统
  • Visual Studio Code下载安装及汉化
  • MySQL—触发器详解
  • 钉钉H5微应用Springboot+Vue开发分享
  • 项目:微服务即时通讯系统客户端(基于C++QT)]四,中间界面搭建和逻辑准备
  • 【C语言】指针详解(一)
  • unity3D雨雪等粒子特效不穿透房屋效果实现(粒子不穿透模型)
  • ROS2安装cartographer
  • kafka测试
  • 总结C/C++中内存区域划分
  • 第168天:应急响应-ELK 日志分析系统Yara规则样本识别特征提取规则编写
  • MySQL 面试题及答案
  • vue仿chatGpt的AI聊天功能--大模型通义千问(阿里云)
  • 养老院管理系统(含源码+sql+视频导入教程+文档)