HDU1258 Sum It Up(DFS)
来源:互联网 发布:udp端口在线扫描 编辑:程序博客网 时间:2024/05/21 16:43
DFS的练习,当数字大于和时进行剪枝。这题的关键在于过滤掉之前DFS过的值,这里采用的是记录上一个阶段使用的值,并与当前的值进行比较,不相等才能进行DFS
#include<iostream>using namespace std;int num[20],s[20],n,m,flag;void dfs(int x,int cnt,int z){ int d; if(z > n) return ; if(z == n){ flag = 1; for(int i = 0;i<cnt;i++){ if(i == cnt-1) printf("%d\n",s[i]); else printf("%d+",s[i]); } } d = -1; for(int i = x;i<m;i++){ if(num[i] != d){ s[cnt] = num[i]; d = num[i]; dfs(i+1,cnt+1,z+num[i]); } } return ;}int main(){ while(scanf("%d %d",&n,&m),n,m){ for(int i = 0;i<m;i++) scanf("%d",&num[i]); printf("Sums of %d:\n",n); flag = 0; dfs(0,0,0); if(!flag) printf("NONE\n"); } return 0;}
0 0
- 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)
- HDU1258 Sum It Up 【DFS】+【判重】
- HDU1258 POJ1564 Sum It Up DFS
- hdu1258 Sum It Up(dfs)
- HDU1258 Sum It Up(DFS)
- HDU1258 Sum It Up (DFS)
- HDU1258 Sum It Up
- HDU1258:Sum It Up
- Sum It Up hdu1258
- HDU1258 Sum it up
- HDU1258 Sum It Up
- hdu1258(Sum It Up)
- 杭电 HDU 2196 Computer Time (树形dp)
- 学习札记:CISCO云计算
- Kafka设计解析(二):Kafka High Availability (上)
- 已解——navicat premium连接mySQL,无法连接
- (阿里多媒体云)InvalidNamespace Namespace
- HDU1258 Sum It Up(DFS)
- 【算法设计与数据结构】匈牙利算法求最大匹配
- CSS-定位
- zzuli OJ 1087: 获取出生日期(多实例测试)
- 野人学Android基础篇之四大组件第一课--Activity的生命周期
- 悟透JavaScript
- NoSQL
- zzuli OJ 1088: 手机短号 (多实例)
- Codeforces Round #310