关键词:
部分和问题
- 描述
- 给定整数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题目描述: 小明又出问题了。妈妈认为聪明的小明应该更加用功学习而变的更加厉害,所以小明除了上学之外,还要参加妈妈为他报名的各科复习班。另外每周妈妈还会送他去学习朗诵、舞蹈... 查看详情