HDU1258 POJ1564 Sum It Up DFS
来源:互联网 发布:化工软件有哪些 编辑:程序博客网 时间:2024/05/22 12:54
题目大意:输入两个整数t和n,然后输入n个整数,让你找出这n个整数中,和为t所有的算式。
分析:DFS即可,只是我们要找出都需要哪些参数。
首先,我们需要一个纪录当前算式和的参数sum,同时用来作为递归的终止条件;其次,我们还需要一个辅助数组ans来纪录和为t的算式,这就需要一个参数cnt来纪录ans中元素的个数,便于输出;最后,我们还需要一个参数x来纪录当前算式位于原数组num中的位置,用于DFS中遍历。有了这三个参数,问题也差不多就解决了。
实现代码如下:
#include <cstdio>#include <iostream>using namespace std;int n,t;int num[15],ans[15];bool flag;void dfs(int sum,int x,int cnt){ if(sum==t) { flag=true; printf("%d",ans[0]); for(int i=1;i<cnt;i++) printf("+%d",ans[i]); printf("\n"); return ; } for(int i=x;i<n;i++) { if(i==x||num[i]!=num[i-1]) { ans[cnt]=num[i]; dfs(sum+num[i],i+1,cnt+1); } } return ;}int main(){ while(scanf("%d%d",&t,&n)) { if(t==0&&n==0) break; for(int i=0;i<n;i++) scanf("%d",&num[i]); flag=false; printf("Sums of %d:\n",t); dfs(0,0,0); if(!flag) puts("NONE"); } return 0;}
0 0
- HDU1258 POJ1564 Sum It Up DFS
- POJ1564 Sum It Up(DFS)
- HDU1258:Sum It Up(DFS)
- hdu1258 Sum It Up (DFS)
- Sum It Up(hdu1258,dfs)
- HDU1258:Sum It Up(DFS)
- HDU1258:Sum It Up(DFS)
- DFS hdu1258 Sum It Up
- HDU1258 Sum It Up(DFS)
- POJ1564(DFS构造法) Sum It Up
- HDU1258 Sum It Up 【DFS】+【判重】
- hdu1258 Sum It Up(dfs)
- HDU1258 Sum It Up(DFS)
- HDU1258 Sum It Up (DFS)
- poj1564 Sum it up
- HDU1258 Sum It Up
- HDU1258:Sum It Up
- Sum It Up hdu1258
- 比较全面的gdb调试命令
- 7种炫酷HTML5 SVG液态水滴融合分解动画特效
- 【PLSQL】绑定变量,动态SQL,硬解析和软解析
- web应用票据打印实现(三)
- HDU 3549--Flow Problem【最大流】
- HDU1258 POJ1564 Sum It Up DFS
- Java的静态导入
- 获取一张表中某个字段最大值的一条记录
- DMA控制器
- 一切成功源于积累——20150312 欧美的连续跌 -0.80 -1.40 -0.80 德拉基讲话
- error C2871: 'std' : does not exist or is not a namespace
- 如何成功的面试到一位好的技术人员?
- Drawable Resource类型
- 【Python】 Python网络编程概论 + UDP初步