洛谷 P1036 【递归】选数

从N个整数择K个 一、问题 给定N个整数(可能有负),从中择K个,使得这K个之和恰好等于一个给定的整数X; 如果有多种方案,择它们中元素平方和最大的一个据保证这样的方案唯一。 例如,从4个整数{2,3,3,4}中2,使它们的和为6,显然有两种方案{2,4}与{3,3},其中平方和最大的方案为{2,4}。 二、算法实现 //从n个k个使得和为x //若有多个方案... 阅读详情
题目描述

已知 n 个整数 x1,x2,…,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=2

在这里插入图片描述

#include<iostream>
#include<math.h>
using namespace std;

int x[20],n,k;//依照题目所设

bool isprime(int n){//判断是否质数
    int s=sqrt(double(n));
    for(int i=2;i<=s;i++){
        if(n%i==0) return false;
    }
    return true;
}
int rule(int left,int sum,int start,int end){
//left为剩余的k,sum为前面累加的和,start和end为全组合剩下数字的选取范围;
//调用递归生成全组合,在过程中逐渐把K个数相加,当选取的数个数为0时,直接返回前面的累加和是否为质数即可
    if(left==0)return isprime(sum);
    int tsum=0;
    for(int i=start;i<=end;i++){
        tsum+=rule(left-1,sum+x[i],i+1,end);
    }
    return tsum;
}
int main(){
    cin>>n>>k;
    for(int i =0;i<n;i++)cin>>x[i];
    cout<<rule(k,0,0,n-1);//调用递归解决问题
}
LangChain + PlayWright实战:5分钟搞定网页自动化测试(附完整代码) 本文详细介绍了如何利用LangChain与PlayWright构建智能网页自动化测试系统。通过环境配置、核心架构设计、实战Agent构建及性能优化等步骤,开发者可以快速实现高效的Web操作自动化,提升测试效率。文章还提供了完整代码示例和典型问题解决方案。 阅读详情

相关推荐

基于FPGA与红外成像的眼动追踪系统设计与实现(教学向)

本文详细介绍了基于FPGA与红外成像的眼动追踪系统设计与实现。通过红外摄像头采集图像,利用FPGA进行实时图像处理和红外瞳孔追踪,结合Verilog编程实现多目标检测与瞳孔定位。该系统适用于嵌入式视觉教学,展示了硬件搭建、算法优化及实时显示的完整流程。

g5h6i7j的博客 798

C语言题目:k个n相加

已知n 个整数 x1,x2,⋯ ,xn,以及 1整数 k(k

Kuluha的博客 1052

Android Audio常见问题分析方法

分析audio dump,确定写给BT的data是否正常,MTK平台Android原生架构分析threadloop write节点,高通平台分析QXDM 1586节点,从dump确定问题大概位置。分析systrace 确定性能。AudioFocus状态(用于播放或者音量异常的情况)。AudioTrack是否正常创建bt连接是否正常通路异常,setMode,setSpeakerphoneOn等都会影响设备择,sco调用流程是否正常。

一条老狗的博客 2339

题目描述 已知nn个整数 x1,x2,…,xnx1,x2,…,xn,以及一个整数k(k<n)k(k<n)。 从nn个整数任选kk个整数相加,可分别得到一系列的和。 例如当n=4,k=3n=4,k=3,44个整数分别为 3,7,12193,7,1219时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+1219=38 3+1219=34 现在,要求...

weixin_42696809的博客 1969

洛谷 P1036 C语言实现

P1036 - 洛谷 题目描述 已知 n 个整数 x1,x2,…,xn ,以及1整数k(k&amp;lt;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。 现在,要求你计算出和为素共有多少种。 例如上例,只有一种的和...

RanLZ的博客 7384

洛谷1036

1036 python写法 python库函 本来是想学习dfs,但是发现了子序列这个库,本以为这个库只能用于写出字符串的子序列,结果发现列表类型也可以使用,太折磨了。 import itertools def sushu(a): for i in range(2,a): if(a%i==0): return False return True #输入一位矩阵 n,m=map(int,input().split(' ')) x=[str(i

qq_46632578的博客 556

洛谷 P1036 递归

洛谷 P1036 递归 #include <stdio.h> #include <stdlib.h> int n,k,count=0; int a[22]={0}; void Fun(int number,int sum,int start);/*递归*/ int Judge(int n);/*判断质*/ int main() { int i; ...

weixin_45888462的博客 250

洛谷 P1036|递归

洛谷P1036|递归 题目描述 已知 n 个整数 x1,x 2 ,…,xn​,以及1整数k(k<nk<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 现在,要求你计算出和为素共有多少种。 例如上例,...

lvbcy_fairy的博客 589

做题笔记 递归模拟(洛谷 P1036

题目传送门 P1036 不想点进链接里的话看这里 思路分析 我们来分析一下题目 题目要求是在n个里面k个相加等于素,那么我们第一步就是要写好一个判断素的函咯 判断素很简单,我之前在洛谷写过一个博客,大家可以去看看 判断素最简单的三种方法,这里我就直接贴代码 //判断素 bool isprime(int n){ for(int l=2;l<=sqrt(n);l++){...

编程笔记 376

洛谷 - P1036 (递归)

题目链接:点击查看 题目大意:给出n个,我们需要从中k个作为一个新的集合,问新集合的权值和有多少是素 题目分析:这个题目考考察了两点: 判断素 设计递归 为什么把判断素单独列出来了呢?因为一开始我的试除法写错了。。然后调了好久,递归的设计还算可以,不算难也不算太简单(对我来说),用递归跑一下所有子集就好了,具体怎么枚举所有子集且保证不重不漏,我们可以设计一个不降原则的递归,这样每...

Falcon的博客 816

【题解】洛谷P1036

省赛之后,好长一段时间没有做过题了,本来想找道水题热热身,没想到这么一道题目都被折磨了挺久orz,真的是不能松懈啊,本来预定的省赛赛后感也鸽了…

Jourofant的博客 465

洛谷】过程函递归 P1036

题目描述 已知 nnn 个整数 x1,x2,…,xnx_1,x_2,…,x_nx1​,x2​,…,xn​,以及111整数kkk(k<nk<nk<n)。从nnn个整数任选kkk个整数相加,可分别得到一系列的和。例如当n=4,k=3n=4,k=3n=4,k=3,444个整数分别为3,7,12,193,7,12,193,7,12,19时,可得全部的组合与它们的和为: 3+7+12=...

Code_U 337

洛谷 P1036 (简单递归)

题目描述 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,1219 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+1219=38 3+1219=34。 现在,要求你计算出和为素共有多少种。

←_← 1493

洛谷-P1036 递归实现

题目描述 已知 nn 个整数 x_1,x_2,…,x_nx 1 ​ ,x 2 ​ ,…,x n ​ ,以及11整数kk(k&amp;amp;amp;amp;lt;nk&amp;amp;amp;amp;lt;n)。从nn个整数任选kk个整数相加,可分别得到一系列的和。例如当n=4,k=3n=4,k=3,44个整数分别为3,7,12,193,7,12,19时,可得全部的组合与它们的和为: 3+7+12=223+7+12=22 3+7+19=293+7+1...

mengdicfm的博客 1024

--递归(从n个出k个进行求和运算--组合问题)

题目描述 已知n个整数x_1,x_2,…,x_n以及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...

小糊涂的博客 1万+

小韦老师@NOIP普及组-2002-

小韦老师@NOIP普及组-2002- 题目: 描述 已知 n 个整数 x1, x2, …, xn,以及一个整数 k (k<n)。从 n 个整数任选 k 个整数相加,可分别得到一系列的和。例如当 n = 4,k = 3,4 个整数分别为 3,7,1219 时,可得全部的组合与它们的和为: 3 + 7 + 12 = 22 3 + 7 + 19 = 29 7 + 1219 = 38 3 +...

小韦同学的博客 1495

python高效解题】Leetcode-77:组合

我们的口号是:使用最简洁的代码,完成AC:) 题目介绍 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 题目分析 该题目有多种解法,在这里我们介绍两种做法,一种是比较常规的dfs做法,另一种是依靠python现有包combinations实现快速排列组合。 dfs:使用迭代来写深搜是容易的,但需要注意边界问题和内存问题,一般是可以满足

宝哥的博客 456

问题

问题 【问题描述】 已知 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。 【输入】 键盘输入,格式为:n,k(1≤n≤20,k<n), X1

m0_51679956的博客 1662

洛谷P1036-【判断质+递归】 难度:**

题意: 已知 n 个整数 x1,x2,…,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=293+7+...

weixin_42921101的博客 527

洛谷P1036 递归

题目描述 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,1219 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+1219=38 3+1219=34。 现在,要求你计算出和为素共有多少种。

pxlsdz的博客 1267

递归问题

递归问题 题目描述 已知 n个整数 x1,x2,…,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(1≤n≤20,k<n) x1,x2,…,x**n(1≤x**

qq_41117896的博客 1107

2026厦大团队:智能体OpenClaw(小龙虾)应用实践-94页.pdf

2026厦大团队:智能体OpenClaw(小龙虾)应用实践-94页.pdf

完美反编译工具,可以反编译大多EA

完美反编译工具,可以反编译大多EA

上一篇: 洛谷 P1567 统计天数
下一篇: dos常用命令用法详解-dir
knaha
博客等级 码龄7年 66粉丝 59原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值