【USACO2.3.3】和为零
来源:互联网 发布:李羊羊seo 编辑:程序博客网 时间:2024/05/05 06:10
【USACO2.3.3】和为零
Time Limit:10000MS Memory Limit:65536K
Total Submit:9 Accepted:5
Case Time Limit:1000MS
Description
请考虑一个由 1 到 N ( N=3, 4, 5 ... 9 )的数字组成的递增数列:1 2 3 ... N。现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白,来将每一对数字组合在一起(请不在第一个数字前插入符号)。计算该表达式的结果并注意你是否得到了和为零。
请你写一个程序找出所有产生和为零的长度为N的数列。
Input
单独的一行表示整数N (3 <= N <= 9)。
Output
按照ASCII码的顺序,输出所有在每对数字间插入“+”, “-”, 或 “ ”后能得到和为零的数列。(注意:就算两个数字之间没有插入符号也应该保留空格)
Sample Input
7
Sample Output
1+2-3+4-5-6+7 1+2-3-4+5+6-7 1-2 3+4+5+6+7 1-2 3-4 5+6 7 1-2+3+4-5+6-7 1-2-3-4-5+6+7
简单 的 DFS。。但是输出搞错了 一次。代码写的超烂。
下面是 AC代码 :
#include<iostream>#include<algorithm>using namespace std;int a[10]={0,1,2,3,4,5,6,7,8,9};int b[10]; //1代表“ ”空格,2代表+,3代表-。int ans[10];int n,i,j;int ans_n;int ans_val[1000];void dfs(int cur){if(cur==n){int now=0,temp=1; int k=1;for(i=1;i<=n-1;i++){if(b[i]==1){if(temp>=0)temp=temp*10+(i+1);elsetemp=temp*10-(i+1);}else if(b[i]==2){ans[k++]=temp;temp=i+1;}else if(b[i]==3){ans[k++]=temp;temp=-(i+1);}}ans[k]=temp;for(i=1;i<=k;i++)now+=ans[i];if(now==0){int s=0;for(i=1;i<=n-1;i++)s=s*10+b[i];ans_val[ans_n++]=s;}return ;}b[cur]=1;dfs(cur+1);b[cur]=2;dfs(cur+1);b[cur]=3;dfs(cur+1);}int main(){int temp[10];cin>>n;dfs(1);sort(ans_val,ans_val+ans_n);for(i=0;i<ans_n;i++){cout<<1;int l=1,t=ans_val[i];while(t){temp[l++]=t%10;t/=10;}for(j=n-1;j>=1;j--){if(temp[j]==1)cout<<" "<<n-j+1;else if(temp[j]==2)cout<<"+"<<n-j+1;else if(temp[j]==3)cout<<"-"<<n-j+1;}cout<<endl;}return 0;}
- 【USACO2.3.3】和为零
- usaco2.3.3和为零
- 【USACO2.3.3】和为零
- 【USACO2.3.3】和为零 爆搜
- 三数和为零
- 和为零(sum)
- usaco2
- usaco2
- USACO2.3.3 Zero Sum (zerosum)
- USACO2.3.3 Zero Sum (zerosum)
- 题目:和为零的子矩阵
- 和为零的子矩阵
- USACO 2.3 和为零
- lintcode_和为零的子矩阵
- USACO 2.3 和为零 (DFS)
- usaco ★Zero Sum 和为零
- 和为零的子矩阵
- 和为零的子矩阵-LintCode
- 关于android中的图片缓冲区问题
- 提高php编程效率
- Perl中our,my,local的区别与联系
- 一切都忙碌起来了
- 校内上的脑残装X日志标题整理。
- 【USACO2.3.3】和为零
- QT signal & slot 定义及用法
- android中application共享数据以及内存泄露问题
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件 .
- 关于Cookie中的Path和domain
- 常见会议文章Review模板
- 如何根据Android 运行时的进程名找到对应APK包路径
- android UI 优化系列之 创建RGB565的缓存
- 内存状态查询函数