算法训练 和为T
来源:互联网 发布:2017部门决算软件 编辑:程序博客网 时间:2024/04/29 18:03
问题描述
从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T。每个元素限选一次,不能一个都不选。
输入格式
第一行一个正整数n,表示整数集内元素的个数。
第二行n个整数,用空格隔开。
第三行一个整数T,表示要达到的和。
输出格式
输出有若干行,每行输出一组解,即所选取的数字,按照输入中的顺序排列。
若有多组解,优先输出不包含第n个整数的;若都包含或都不包含,优先输出不包含第n-1个整数的,依次类推。
最后一行输出总方案数。
样例输入
5
-7 -3 -2 5 9
0
样例输出
-3 -2 5
-7 -2 9
2
数据规模和约定
1<=n<=22
T<=maxlongint
集合中任意元素的和都不超过long的范围
同样是深度优先遍历,只不过此题是从末尾向前遍历。代码如下,其中b1表示每行输出的个数,
#include<iostream>using namespace std;int n,t,count,a[24],b[24],i;void dfs(int a1, int b1, int sum){ if(a1<0) return; dfs(a1-1,b1,sum); b[b1]=a[a1]; sum+=a[a1]; if(sum==t) { count++; for(i=b1;i>=0;i--) cout<<b[i]<<" "; cout<<endl; } dfs(a1-1,b1+1,sum);}int main(){ cin>>n; for(i=0;i<n;i++) cin>>a[i]; cin>>t; count=0; dfs(n-1,0,0); cout<<count; return 0; }
`
0 0
- 算法训练 和为T
- 算法训练 和为T
- 算法训练 和为T
- 算法训练 和为T
- 算法训练 和为T
- 算法训练 和为T
- 蓝桥杯 算法训练 和为T
- 算法训练 和为T dfs
- 蓝桥杯-算法训练-和为T
- 蓝桥杯 算法训练 和为T
- 蓝桥杯 ALGO-115 算法训练 和为T
- 蓝桥杯 ALGO-115 算法训练 和为T Java版
- 和为T
- 和为T(BFS)
- T-SQL语句训练
- 算法学习和ACM训练方案
- 希尔排序算法的训练和思考
- 蓝桥杯算法训练 连续正整数的和
- 列表控件JList的使用
- RPM与yum软件管理
- Math
- 3D游戏编程与设计 Week6
- Java运算符和类型转换
- 算法训练 和为T
- c++的数学库---eigen
- 在windows中如何开启PHP 的 curl模块
- 【LeetCode】547. Friend Circles
- STL 中的二分函数
- javascript的征程三--js的基本概念
- 【OpenCV学习笔记】二十九、轮廓特征属性及应用(六)——外接圆等
- Python 输入和输出
- 自定义View继承View 一 注意事项