zoj 1711 Sum It Up
2010-04-30 16:36
393 查看
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1711
一道DFS的题目.和zoj 1204很相像.因为先做过1204了.所以想都没想就以为差不多.结果囧了..搞了很久才发现题目意思不一样.
本题的难点是消除重复.我用了一个笨方法.将求出来的答案放到一个vector里,再将这个vector放到set里面.因为set会去重.所以就OK了.网
上有更好的方法.只是看不懂.-_-||
上代码哈哈~~
一道DFS的题目.和zoj 1204很相像.因为先做过1204了.所以想都没想就以为差不多.结果囧了..搞了很久才发现题目意思不一样.
本题的难点是消除重复.我用了一个笨方法.将求出来的答案放到一个vector里,再将这个vector放到set里面.因为set会去重.所以就OK了.网
上有更好的方法.只是看不懂.-_-||
上代码哈哈~~
/* * 1711.cpp * * Created on: Apr 30, 2010 * Author: wyy * */ #define MaxNum 12 #include<cstdio> #include<set> #include<vector> using namespace std; bool flag; int T, N; int num[MaxNum]; int ret[MaxNum]; set< vector<int> > S; void Init() { flag = false; S.clear(); for(int i = 0; i < N; ++i) scanf("%d", &num[i]); printf("Sums of %d:/n", T); } void DFS(int size, int pos, int sum) { if(sum == T) { vector<int> ivec; for(int i = 0; i < size; ++i) ivec.push_back(ret[i]); int t = S.size(); S.insert(ivec); if(t < S.size()) { for(int i = 0; i < size - 1; ++i) printf("%d+", ret[i]); printf("%d/n", ret[size - 1]); flag = true; } } else if(sum < T) { for(int i = pos; i < N; ++i) { if(sum + num[i] <= T) { ret[size] = num[i]; DFS(size + 1, i + 1, sum + ret[size]); } } } } int main() { //freopen("input.txt", "r", stdin); while(scanf("%d%d", &T, &N) && T && N) { Init(); DFS(0, 0, 0); if(!flag) printf("NONE/n"); } //fclose(stdin); return 0; }
相关文章推荐
- ZOJ 1711 Sum It Up(DFS啊 )
- poj1564 Sum It Up (zoj 1711 hdu 1258) DFS
- zoj1711-Sum It Up
- dfs ZOJ 1711 Sum It Up
- poj 1564 && zoj 1711 Sum It Up (dfs)
- poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)
- ZOJ 1711 Sum It Up
- poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)
- ZOJ1711 POJ1564 Sum It Up,DFS+输出排序+去重复
- zoj 1711 || poj 1564 Sum It Up(DFS~~~去重~)
- ZOJ 1711 Sum It Up
- ZOJ 1711 Sum It Up
- poj1564 Sum It Up (zoj 1711 hdu 1258) DFS
- zoj 1711 Sum It Up
- 1711-Sum It Up 题解
- HDU-1711:Sum It Up
- hdu 1258和ZJU 1711 Sum It Up(dfs经典索搜)
- Sum It Up poj 1711
- zju 1711——Sum It Up
- POJ 1564(HDU 1258 ZOJ 1711) Sum It Up(DFS)