部分和问题nyoj(代码片段)

tianzeng tianzeng     2022-10-23     807

关键词:

部分和问题

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
 
描述
给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。
 
输入
首先,n和k,n表示数的个数,k表示数的和。
接着一行n个数。
(1<=n<=20,保证不超int范围)
输出
如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”
样例输入
4 13
1 2 4 7
样例输出
YES
2 4 7

#include <iostream>
#include <cstring>
using namespace std;

int a[25],visit[25],sum,sum1,n,flag;
void DFS(int location)

if(flag==1) //找到之后按层依次返回
return;
if(sum<=sum1)

if(sum==sum1)

flag=1;
cout<<"YES"<<endl;
for(int i=0;i<n;i++)
if(visit[i]==1) //选中标记的输出
cout<<a[i]<<" ";
cout<<endl;

return;

for(int i=location;i<n;i++)

sum1+=a[i]; //选中第i个元素
visit[i]=1; //标记第i个元素
DFS(i+1); //向下搜索
sum1-=a[i]; //不选第i个元素
visit[i]=0; //解除标记

int main()

while(cin>>n>>sum)

sum1=0;
memset(visit,0,sizeof(visit));
for(int i=0;i<n;i++)
cin>>a[i];
flag=0;
DFS(0);
if(!flag)
cout<<"NO"<<endl;

return 0;

nyoj1058部分和问题

部分和问题时间限制:1000 ms | 内存限制:65535 KB难度:2描述给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。输入首先,n和k,n表示数的个数,k表示数的和。接着一行n个数。(1<=n&... 查看详情

nyoj-1058部分和问题dfs

部分和问题时间限制:1000 ms | 内存限制:65535 KB难度:2 描述给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。 输入首先,n和k,n表示数的个数,k表示数的和。接着一行n个数... 查看详情

nyoj-3-多边形重心问题(求多边形面积和中心)(代码片段)

题目链接1/*2Name:nyoj-3-多边形重心问题3Copyright:4Author:5Date:2018/4/2621:25:416Description:7ACM国际大学生程序设计竞赛算法与实现的模板8*/9#include<iostream>10#include<cstdio>11#include<cmath>12#include<algori 查看详情

nyoj44-子串和(子串和最大问题)(代码片段)

44-子串和内存限制:64MB时间限制:5000msSpecialJudge:Noaccepted:12submit:48题目描述:给定一整型数列a1,a2...,an,找出连续非空子串ax,ax+1,...,ay,使得该子序列的和最大,其中,1<=x<=y<=n。输入描述:第一行是一个整数N(N<=10)表示测试数... 查看详情

nyoj背包问题(代码片段)

背包问题时间限制:3000 ms | 内存限制:65535 KB难度:3 描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10... 查看详情

nyoj公约数和公倍数(代码片段)

...sp;| 内存限制:65535 KB难度:1 描述小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。 输入第一行输入一个整数n(0<n<=10000),表示有n组测试数据;... 查看详情

nyoj3多边形重心问题(代码片段)

多边形重心问题时间限制:3000ms | 内存限制:65535KB难度:5 描述  在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接,(第一个和最后一个连接),所有线段不和其他线段相交,但... 查看详情

nyoj40-公约数和公倍数(gcd)(代码片段)

...制:1000msSpecialJudge:Noaccepted:30submit:47题目描述:小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。输入描述:第一行输入一个整数n(0<n<=10000),表示有n组测试数据;... 查看详情

nyoj915+-字符串(代码片段)

...串变换成第二个字符串。你现在要去帮助他完成那个这个问题。 输入多组测试数据每组数据有两行,每行包含一个由”+”和 查看详情

nyoj77-开灯问题(倍数遍历)(代码片段)

77-开灯问题 内存限制:64MB时间限制:3000ms特判:No 通过数:13提交数:24难度:1题目描述:有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的... 查看详情

nyoj会场安排问题(代码片段)

#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>usingnamespacestd;structHYintu,v;hy[10005];boolcmp(HYa,HYb)if(a.v==b.v)returna.u 查看详情

布线问题(nyoj38)(代码片段)

 布线问题时间限制:1000 ms | 内存限制:65535 KB难度:4 描述南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1、把所有的楼都供上电。2、所用... 查看详情

不高兴的小名nyoj(代码片段)

...;内存限制:65535 KB难度:1 描述  小明又出问题了。妈妈认为聪明的小明应该更加用功学习而变的更加厉害,所以小明除了上学之外,还要参加妈妈为他报名的各科复习班。另外每周妈妈还会送他去学习朗诵、舞蹈... 查看详情

nyoj正数性质(代码片段)

整数性质时间限制:500 ms | 内存限制:65535 KB难度:1 描述我们知道,在数学中,对于任意两个正整数a和b,必定存在一对整数s、t使得sa+tb=gcd(a,b)。 输入多组测试数据。每组数据输入两个非负整数a和b且a+b&g... 查看详情

nyoj14-会场安排问题(贪心)(代码片段)

14-会场安排问题内存限制:64MB时间限制:3000msSpecialJudge:Noaccepted:9submit:15题目描述:学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动... 查看详情

nyoj22-素数求和问题(打表)(代码片段)

22-素数求和问题内存限制:64MB时间限制:3000msSpecialJudge:Noaccepted:41submit:52题目描述:现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。输入描述:第一行给出整数M(0<M<10)代表多少组测... 查看详情

nyoj0269vf(代码片段)

nyoj0269VF意思大致为从1-10^9数中找到位数和为s的个数分析:利用动态规划思想,一位一位的考虑,和s的范围为1-81  状态定义:dp[i][j]=当前所有i位数的和为j的个数  除了最高位的取值为1-9(最高位不能为0),其余位的取值都为0-... 查看详情

nyoj53-不高兴的小明(遍历)(代码片段)

...0msSpecialJudge:Noaccepted:28submit:89题目描述:  小明又出问题了。妈妈认为聪明的小明应该更加用功学习而变的更加厉害,所以小明除了上学之外,还要参加妈妈为他报名的各科复习班。另外每周妈妈还会送他去学习朗诵、舞蹈... 查看详情