USACO 2.3.3 Zero Sum
来源:互联网 发布:广数g76车螺纹编程实例 编辑:程序博客网 时间:2024/05/16 12:55
思路:首先要构造表达式,以9为例来说,1 2 3 4 5 6 7 8 9中间共有八个需要填的运算符号,而每个空有三个选择,‘+','-',’ ‘,共有3^8种可能,可以依次遍历这6561种可能,然后再把运算符号插入到九个数字中间,这样就形成了一个个表达式。然后在解析这个表达式就可以了。怎么解析表达式呢?一种方法是,把每个数字和其前面的符号放到一块存储在一个数组中。然后再遍历数组累加其中的数字就好了。
源代码:
/*ID: supersnow0622PROG: zerosumLANG: C++*/#include <iostream>#include <fstream>#include <string>#include<algorithm>#include<memory.h>using namespace std;int N,Count=0;int arr[10];char ch[4]={'+','-',' ','\0'};string str,s[20];void convert(int n){ memset(arr,0,sizeof(arr)); int temp=0; while(n!=0) { arr[temp++]=n%3; n/=3; }}int shuzi(string str){ int res[1000]; char pre=str[0]; int t=0,r=1,n=0; for(int i=0;i<(int)str.length();i++) { if('0'<=str[i]&&str[i]<='9') { t=t*r+(str[i]-'0'); r*=10; } if(str[i]=='+') { if(pre=='-') res[n++]=-t; else res[n++]=t; r=1;t=0;pre='+'; } if(str[i]=='-') { if(pre=='-') res[n++]=-t; else res[n++]=t; r=1;t=0;pre='-'; } } if(pre=='-') res[n++]=-t; else res[n++]=t; t=0; for(int i=0;i<n;i++) t+=res[i]; if(t==0) s[Count++]=str; return t;}int main(){ ofstream fout ("zerosum.out"); ifstream fin ("zerosum.in"); cin>>N; int sum=1; string str; for(int i=0;i<N-1;i++) sum*=3; for(int a=0;a<sum;a++) { convert(a); str="1"; for(int i=0;i<N-1;i++) { str+=ch[arr[i]]; str+=i+2+'0'; } shuzi(str); } sort(s,s+Count); for(int i=0;i<Count;i++) cout<<s[i]<<endl; return 0;}
- USACO 2.3.3 Zero Sum
- USACO 2.3.3 Zero Sum
- USACO 2.3.3 Zero Sum
- USACO 2.3.3 Zero Sum
- [usaco]2.3 Zero Sum
- USACO--2.3Zero Sum
- USACO 2.3 Zero Sum
- USACO 2.3 Zero Sum
- USACO 2.3 Zero Sum (zerosum)
- USACO 2.3 Zero Sum 题解
- USACO-Section2.3 Zero Sum
- 【USACO题库】2.3.3 Zero Sum和为零
- 【USACO题库】2.3.3 Zero Sum和为零
- JZOJ1268.【USACO题库】2.3.3 Zero Sum和为零
- 1031. 【USACO题库】2.3.3 Zero Sum和为零
- USACO-Section 2.3 Zero Sum(枚举)
- USACO section2.3 Zero Sum题解&代码
- 【其他】【USACO】Zero Sum
- 14-自定义错误函数-错误处理器
- 用java统计网站在线人数
- SVN服务器搭建和使用(一)
- google 地图 API 参考
- 以DataRow级别的数据向DataTable里面填充
- USACO 2.3.3 Zero Sum
- 网站策划流程
- 【Win7技巧:删除多余字体减轻电脑负担】
- 画矩形
- flume日志采集
- 嵌入式驱动开发的前期Linux 和 C学习(四)
- adb server is out of date. killing...
- 批处理命令 For循环命令详解!
- SVN服务器搭建和使用(二)