部分和问题
来源:互联网 发布:java基础教程下载 编辑:程序博客网 时间:2024/06/04 17:52
部分和问题
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
- 给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。
- 输入
- 首先,n和k,n表示数的个数,k表示数的和。
接着一行n个数。
(1<=n<=20,保证不超int范围) - 输出
- 如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”
- 样例输入
4 131 2 4 7
- 样例输出
YES2 4 7
思路:每个数都按加或者不加来判断搜索一下。
ac代码:
#include<stdio.h>#include<string.h> int n,sum,a[25],vis[25],flag;void dfs(int cur,int temp){if(cur>n)return ;if(cur==n&&temp==sum){printf("YES\n");flag=0;for(int i=0;i<n;i++)if(vis[i])printf("%d ",a[i]);printf("\n");return ;}vis[cur]=1;dfs(cur+1,temp+a[cur]);vis[cur]=0;dfs(cur+1,temp);}int main(){while(scanf("%d%d",&n,&sum)!=EOF){for(int i=0;i<n;i++)scanf("%d",a+i);memset(vis,0,sizeof(vis));flag=1;dfs(0,0);if(flag){printf("NO\n");}}return 0;}
0 0
- DFS 部分和问题
- 部分和问题
- 多重部分和问题
- 部分和问题
- 部分和问题
- 部分和问题
- nyoj 部分和问题
- nyoj-部分和问题
- nyoj1058部分和问题
- 部分和问题
- nyoj 部分和问题
- 部分和问题
- 部分和问题
- 部分和问题
- 多重部分和问题
- 部分和问题
- 部分和问题
- 部分和问题
- HDU - 2829 Lawrence(四边形优化)
- java23中设计模式之代理模式
- 浅析c++中的内联函数(关键字inline)
- 黑马程序员——网络编程(Socket编程)下
- 如何让servelt和Filter注入到spring容器或者在servlet中调用spring中的bean
- 部分和问题
- 使用MySQL Proxy解决MySQL主从同步延迟
- JavaScript中list的简单使用<菜单>
- JavaScript高级程序设计之客户端检测之怪癖检测第9.2讲笔记
- java继承1—上溯造型
- Android之ListView属性描述
- ULBP(uniform LBP) c++代码
- 单例模式中静态变量初始化与不初始化有什么区别?
- 文章标题