nyoj 1058 部分和问题
来源:互联网 发布:巫师3和老滚5 知乎 编辑:程序博客网 时间:2024/05/19 17:11
- 输入
- 首先,n和k,n表示数的个数,k表示数的和。
接着一行n个数。
(1<=n<=20,保证不超int范围) - 输出
- 如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”
- 样例输入
4 131 2 4 7
- 样例输出
YES
2 4 7
#include<iostream>#include<cstdio>#include<cstring>using namespace std; int n,k,f,sum; int a[25],b[25];void dfs(int x){ int i; if(sum>=k){ if(sum==k){ if(f){ f=0; printf("YES\n"); } for(i=0;i<n;i++){ if(b[i]) printf("%d ",a[i]); } printf("\n"); } return ; } for(i=x;i<n;i++){ sum+=a[i]; b[i]=1; dfs(i+1); b[i]=0; sum-=a[i]; }}int main(){ int i; while(scanf("%d%d",&n,&k)!=EOF){ for(i=0;i<n;i++){ scanf("%d",&a[i]); } f=1; sum=0; memset(b,0,sizeof(b)); dfs(0); if(f) printf("NO\n"); } return 0;}
0 0
- NYOJ-1058 部分和问题
- NYOJ 1058 部分和问题
- nyoj 1058 部分和问题
- nyoj 1058 部分和问题
- NYOJ-1058 部分和问题
- nyoj 1058 部分和问题
- NYOJ-1058部分和问题
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题
- NYOJ 1058 部分和问题
- NYOJ-1058 部分和问题
- NYOJ-1058-部分和问题
- nyoj 1058 部分和问题
- NYOJ-1058-部分和问题
- nyoj 1058部分和问题
- [NYOJ] 1058 部分和问题
- Linux基础入门
- Java常用的几种设计模式
- xgboost python 在windows下安装
- CMake学习-添加头文件路径,库路径,库
- linux编程之静态链接库和动态链接库
- nyoj 1058 部分和问题
- windows中的进程和线程
- Compile、Make和Build的区别(转载)
- PyCharm设置护眼背景色
- IntelliJ IDEA 导入 第三方jar包 图解
- startActivityForResult的使用
- Activity跳转切换动画
- 算法导论(problems 6-3 Young tableaus)
- 策略模式+工厂模式优化if...else if...else if结构