nyoj1058部分和问题

寂地沉 寂地沉     2022-09-05     164

关键词:

部分和问题

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

给定整数a1a2.......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 <stdio.h>
int n, k, ok, arr[22], vis[22], count;
 
void DFS(int pos){
    if(count >= k)
	{
        if(count == k)
		{
            if(!ok){
                ok = 1; printf("YES
");
            }
            for(int i = 0; i < n; ++i)
                if(vis[i]) printf("%d ", arr[i]);
            printf("
");
        }
        return;
    }
     
    for(int i = pos; i < n; ++i){
        count += arr[i];
        vis[i] = 1;
        DFS(i + 1);
        count -= arr[i];
        vis[i] = 0;
    }
}
 
int main(){
    while(scanf("%d%d", &n, &k) == 2){
        ok = 0;
        for(int i = 0; i < n; ++i){
            scanf("%d", arr + i);
            vis[i] = 0;
        }
        count = 0; DFS(0);
        if(!ok) printf("NO
");
    }
    return 0;
}        

  

nyoj-1058部分和问题dfs

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

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

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

部分和问题南阳acm1058(递归+dfs)(代码片段)

部分和问题时间限制:1000ms | 内存限制:65535KB难度:2 描述给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。 输入首先,n和k,n表示数的个数,k表示数的和。接着一行n个数。(1<=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公约数和公倍数(代码片段)

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

nyoj背包问题(代码片段)

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

nyoj7-街区最短路径问题(曼哈顿距离)

题目地址:pid=7">NYOJ7曼哈顿距离:两点在南北方向上的距离加上在东西方向上的距离,即d(i。j)=|xi-xj|+|yi-yj|。对于一个具有正南正北、正东正西方向规则布局的城镇街道。从一点到达还有一点的距离正是在南北方向上旅行... 查看详情

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

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

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

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

nyoj239月老的难题

...牵红线,成就一对对美好的姻缘。现在,由于一些原因,部分男孩与女孩可能结成幸福的一家,部分可能不会结成幸福的家庭。现在已知哪些男孩与哪些女孩如果结婚的话,可以结成幸福的家庭,月老准备促成尽可能多的幸福家... 查看详情

nyoj题目915+-字符串

...串变换成第二个字符串。你现在要去帮助他完成那个这个问题输入多组测试数据每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。输出仅一个整数,输出最少需要操作的次数。如果答案不... 查看详情

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

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

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

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

hdu1058humblenumbers(动规+寻找丑数问题)

HumbleNumbersTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):16742    AcceptedSubmission(s):7280ProblemDescription 查看详情

nyoj104最大和

最大和时间限制:1000 ms | 内存限制:65535 KB难度:5描述给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。 例子:... 查看详情

1058.选择题(20)

1058.选择题(20)批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多选题的个数。随后M... 查看详情

nyoj571——各种划分数

...nbsp;内存限制:65535 KB 描述整数划分是一个经典的问题。请写一个程序,完成以下要求。输入每组输入是两个整数n和k。(1<=n<=50,1<=k<=n)输出对于输入的n,k;第一行:将n划分成若干正整数之和的划分数。第二行:将n划... 查看详情