[usaco]2.3 Zero Sum
2012-08-22 10:35
525 查看
1 2 3 4 5 6 7 ,在里面填 + - ,不填就数字合在一起, 比如2 3 = 23 了, 数字的顺序是一定的,那么数字之间的符号 就可以看作是不同的状态,dfs 遍历所有的情况。
原始博客地址 : http://www.fuxiang90.com/?p=1136
/* ID:fuxiang2 PROG: zerosum LANG: C++ */ #include <iostream> #include <fstream> #include <stack> #include <string> #include <vector> #include <queue> #include <map> #include <list> #include <algorithm> #include <set> #include <cmath> #include <cstring> #include <cstdlib> #define REP(i, n) for (int i=0;i<int(n);++i) #define FOR(i, a, b) for (int i=int(a);i<int(b);++i) #define DWN(i, b, a) for (int i=int(b-1);i>=int(a);--i) #define REP_1(i, n) for (int i=1;i<=int(n);++i) #define FOR_1(i, a, b) for (int i=int(a);i<=int(b);++i) #define DWN_1(i, b, a) for (int i=int(b);i>=int(a);--i) #define EACH(it, A) for (typeof(A.begin()) it=A.begin(); it != A.end(); ++it) using namespace std; ofstream fout ("zerosum.out"); ifstream fin ("zerosum.in"); const int N = 10; int flag ; int n; int ans ; int hash[1100000]; int compute() { int num = 0; FOR_1(i,1,n) num = num *4 + flag[i]; return num; } void dfs(int deep) { if(deep == n ){ flag[0] = 2; int num = 0; int t = 1; int pre = 0; FOR_1(i,1,n){ if(flag[i-1] ==0 ) return ; if(flag[i-1] == 1) t = t*10 + i; else if(flag[i-1] == 2){ if(pre == 2) num += t; else if(pre == 3) num -= t; t = i; pre = 2; } else if(flag[i-1] == 3){ if(pre ==2) num += t; else if(pre == 3) num -= t; t = i; pre = 3; } } if(pre == 2) num += t; else if(pre ==3) num -= t; if(num ==0 ){ fout<<1; FOR_1(i,2,n){ if(flag[i-1] == 1) fout<< " "; else if(flag[i-1] == 2) fout<< "+"; else if(flag[i-1] == 3) fout<<"-"; fout<<i; } fout << endl; } }// end if FOR_1(i,1,3){ flag[deep] = i; int num = compute(); if(hash[num] == 0){ hash[num] = 1; dfs(deep + 1); } flag[deep] = 0; } } int main() { fin>>n; dfs(1); return 0; }
原始博客地址 : http://www.fuxiang90.com/?p=1136
相关文章推荐
- USACO 2.3 Zero Sum (zerosum)
- USACO 2.3 Zero Sum 题解
- 【USACO 2.3】Zero Sum(dfs)
- USACO-Section 2.3 Zero Sum(枚举)
- USACO 2.3 Zero Sum
- USACO 2.3 Zero Sum
- USACO Section 2.3: Zero Sum
- USACO Section2.3 Zero Sum 解题报告 【icedream61】
- USACO 2.3 Zero Sum
- USACO--2.3Zero Sum
- USACO 2.3 Zero Sum(DFS)
- USACO section2.3 Zero Sum题解&代码
- USACO 2.3 Cow Pedigrees (nocows)
- (ssl 1115,USACO 2.3)货币系统
- USACO section2.3 Controlling Companies题解&代码
- USACO 2.3
- USACO-Section 2.3 Cow Pedigrees(DP)
- USACO2.3 五道题目
- USACO 2.3 The Longest Prefix
- usaco-2.3-zerosum-pass