Uva 12720
来源:互联网 发布:宋慧乔整容了吗 知乎 编辑:程序博客网 时间:2024/06/08 04:53
模拟题:给出一个二进制的串a,依次从a取出中间的数放到另一个串s中,当a位数是偶数时,即中间有两位时,取二者中较大的的放入s中,反复操作。最后输出s所代表的十进制数。
值得注意的地方在于最后res的求法,不要超范围。之前wa了好多次。
方法一:用两个栈模拟:
#include<stdio.h>#include<stack>#include<string.h>using namespace std;#define N 100007char s[N],str[N];int main(){ int t; scanf("%d",&t); int _case=1; while(t--) { stack<char>a; stack<char>b; memset(str,0,sizeof(str)); memset(s,0,sizeof(s)); scanf("%s",s); int len = strlen(s); for(int i=0;i<=(len-1)/2;i++) { a.push(s[i]); } for(int i=len-1;i>(len-1)/2;i--) { b.push(s[i]); }// printf("%d %d\n",a.size(),b.size()); int count =0; while(1) { if(len==0) break; if(len%2){ if(a.size()>=b.size()){ str[count++]=a.top(); a.pop(); } else { str[count++]=b.top(); b.pop(); } } else { if(a.top()>b.top()){ str[count++]=a.top(); a.pop(); } else { str[count++]=b.top(); b.pop(); } } len--; }// printf("%s\n",str); int num =0,_count=0; int _len = strlen(str); long long ret = 0; for(int i = 0; i < _len; i++){ ret *= 2; ret += str[i] - '0'; ret %= 1000000007; } printf("Case #%d: %d\n", _case++, ret); } return 0;}
方法二:
用r,l标记模拟:
#include<cstdio>#include<string.h>#include<iostream>#include<math.h>#include<algorithm>#include<map>#include<queue>#include<stack>#include<vector>using namespace std;#define N 100007#define mod 1000000007char s[N],str[N];int main(){//freopen("data.txt","r",stdin);//freopen("out.txt","w",stdout); int t,l,r,ccount,_case=1; scanf("%d",&t); while(t--) { memset(str,0,sizeof(str)); ccount=0; scanf("%s",s); int len =strlen(s); if(len%2) {str[ccount++]=s[(len-1)/2]; r=(len-1)/2+1; l=(len-1)/2-1; } else { l = (len-1)/2; r = (len-1)/2+1; } int times =len/2; for(int time=0;time<times;time++) { if(s[l]>s[r]){ str[ccount++]=s[l]; l--; str[ccount++]=s[r]; r++; } else { str[ccount++]=s[r]; r++; str[ccount++]=s[l]; l--; }// printf("%s\n",str); }// cout<<str<<endl; long long num =0,_count=0; int _len = strlen(str); long long ret = 0; for(int i = 0; i < _len; i++){ ret *= 2; ret += str[i] - '0'; ret %= 1000000007; } printf("Case #%d: %d\n", _case++, ret); } return 0;}
0 0
- Uva 12720
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- 【TOJ 2424. 】Easter holidays【SPFA】
- Unity 编辑器扩展 场景视图内控制对象
- Socket中send函数的理解(一)
- Windows7下的Android开发环境的搭建
- [Matlab]FIR滤波器系数,脉冲响应,频率响应的关系
- Uva 12720
- Jmeter之参数化
- Threejs 蒙皮材质的两种提供方式
- IIS下PHP的ISAPI和FastCGI比较
- Ogre-1.9开发环境
- Foundation框架之结构体初识。
- 数据结构笔记之线性表的链式存储结构
- 深入浅出,Struts1对比Struts2的缺点和比较
- NYOJ-127 星际之门(一)