usaco: Zero Sum
来源:互联网 发布:数据库第六版pdf网盘 编辑:程序博客网 时间:2024/06/09 22:24
直接枚举搜索就可以了。感觉usaco上的难度安排有很多不合理的地方,有些题很简单,有些题又很难。
以后做这种题得细心了,虽然一次过了,但改了很久。
/*ID: LANG: C++TASK: zerosum*/#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#define IN "zerosum.in"#define OUT "zerosum.out"using namespace std;const char ch[3] = {' ', '+', '-'};int N;vector<char> res;char t;void solve(int num, int data, int sum){ //num: 当前位数, data: 当前数字, sum: 当前和 res.push_back(char(num + '0')); if(num == N) { if(sum == 0) { for(vector<char>::iterator it = res.begin(); it != res.end(); it++) cout << *it; cout << endl; } res.pop_back(); return ; } for(int i = 0; i < 3; i++) { res.push_back(ch[i]); int tmp_sum; int tmp_data; if(ch[i] == ' ') { tmp_sum = t == '-' ? (sum + data - (data * 10 + num + 1)) : (sum - data + data * 10 + num + 1); tmp_data = data * 10 + num + 1; } else { tmp_data = num + 1; if(ch[i] == '+') { t = '+'; tmp_sum = sum + num + 1; } else { t = '-'; tmp_sum = sum - (num + 1); } } solve(num + 1, tmp_data, tmp_sum); res.pop_back(); } res.pop_back();}int main(){ freopen(IN, "rb", stdin); freopen(OUT, "wb", stdout); while(scanf("%d", &N) != EOF) { t = '0'; res.clear(); solve(1, 1, 1); } return 0;}
- 【其他】【USACO】Zero Sum
- usaco-zero sum
- usaco: Zero Sum
- USACO Zero Sum
- usaco Zero Sum
- [usaco]2.3 Zero Sum
- USACO:Zero Sum
- USACO-Zero Sum
- USACO--2.3Zero Sum
- USACO 2.3 Zero Sum
- USACO-Zero Sum
- USACO 2.3 Zero Sum
- USACO :Zero Sum解题报告
- USACO 2.3.3 Zero Sum
- USACO 2.3.3 Zero Sum
- USACO 2.3 Zero Sum (zerosum)
- USACO 2.3.3 Zero Sum
- USACO 2.3.3 Zero Sum
- LINUX 与WINDOWS 的性能比
- open solution 的时候,open到一半,又弹出open solution 的窗口,或者报 连接关闭的错误。
- 4、WEB开发由浅入深系列BLOG-4(Annoation 注解资源注入 JNDI)
- xml导入和导出
- poj1163 递归或dp
- usaco: Zero Sum
- 程序员的十年规划
- camShift跟踪算法介绍
- 微软2012笔试题之--catalan数
- 5、WEB开发由浅入深系列BLOG-5(Servlet实现简单文件上传)
- WFR
- 迪杰斯特拉算法
- 毕设之每天总结 五:模拟百度自动匹配
- C语言中程序调试和宏使用技巧