CF memsql Start[c]UP 2.0 A
CF memsql Start[c]UP 2.0 A
A. Golden System
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Piegirl got bored with binary, decimal and other integer based counting systems. Recently she discovered some interesting properties about number

, in particular that q2 = q + 1, and she thinks it would make a good base for her new unique system. She called it "golden system". In golden system the number is a non-empty string containing 0's and 1's as digits. The decimal value of expressiona0a1...an equals to

.
Soon Piegirl found out that this system doesn't have same properties that integer base systems do and some operations can not be performed on it. She wasn't able to come up with a fast way of comparing two numbers. She is asking for your help.
Given two numbers written in golden system notation, determine which of them has larger decimal value.
Input
Input consists of two lines — one for each number. Each line contains non-empty string consisting of '0' and '1' characters. The length of each string does not exceed 100000.
Output
Print ">" if the first number is larger, "<" if it is smaller and "=" if they are equal.
Sample test(s)
input
1000
111
output
<
input
00100
11
output
=
input
110
101
output
>
Note
In the first example first number equals to

, while second number is approximately1.6180339882 + 1.618033988 + 1 ≈ 5.236, which is clearly a bigger number.
In the second example numbers are equal. Each of them is ≈ 2.618.
思路:最开始想推每一项的公式,不行,系数太大!后来想把前面的1全部转化为后面的1,发现这样的话也会2^100000太大!
后来发现如果一个字符串中出现的第一个1比另一个字符串中的第一个1高两位的话,就是这个串大,否则转化为后面的1(也就是第i位的1等于第i-1位的1和第i-2位的1)然后再逐位判断对多10^5。
处理时要把字符串反转,放在vector里面然后reverse(),竟然超时,换做直接字符串反转函数,AC 30ms!
#include<cstdio>
#include<iostream>
#include<cmath>
#include<stdlib.h>
#include<vector>
#include<cstring>
#include<map>
#include<algorithm>
#include<string.h>
#define M(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
using namespace std;
char a[],b[];
int num[];
vector<char> v1,v2;
void strRev(char *s)
{
char temp, *end = s + strlen(s) - ;
while( end > s)
{
temp = *s;
*s = *end;
*end = temp;
--end;
++s;
}
}
int main()
{
while(scanf("%s",a)==)
{
scanf("%s",b);
int n = max(strlen(a),strlen(b));
strRev(a);
strRev(b);
int strla = strlen(a);
int strlb = strlen(b);
int tem = strlen(a)-strlen(b);
if(tem < )
{
for(int i = ;i<-tem;i++)
a[strla+i] = '';
}
else
{
for(int i = ;i<tem;i++)
b[strlb+i] = '';
}
/*for(int i = 0;i<n;i++) cout<<a[i];
cout<<endl;
for(int i = 0;i<n;i++) cout<<b[i];
cout<<endl;*/
for(int i = ;i<n;i++)
{
if(a[i] == '' && b[i] == '') num[i+] = ;
else if(a[i] == '' && b[i] == '') num[i+] = ;
else if(a[i] == '' && b[i] == '') num[i+] = ;
else if(a[i] == '' && b[i] == '') num[i+] = -;
}
num[] = ;
num[] = ;
//for(int i = 0;i<n+2;i++) cout<<num[i];
//cout<<endl;
for(int i = n+;i>=;i--)
{
if(i==&&num[i]==) puts("=");
if(num[i]==){puts(">"); break;}
if(num[i]==-){puts("<"); break;}
if(num[i] == ) continue;
if(num[i] == )
{
if(num[i-]==||num[i-]==) {puts(">"); break;}
if(num[i-]==-) num[i-]+=, num[i-]+=;
}
if(num[i] == -)
{
if(num[i-]==||num[i-]==-) {puts("<"); break;}
if(num[i-]==) num[i-]-=, num[i-]-=;
}
}
}
return ;
}
CF memsql Start[c]UP 2.0 A的更多相关文章
- CF memsql Start[c]UP 2.0 B
CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...
- 【CF MEMSQL 3.0 A. Declined Finalists】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【CF MEMSQL 3.0 E. Desk Disorder】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【CF MEMSQL 3.0 D. Third Month Insanity】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【CF MEMSQL 3.0 C. Pie Rules】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【CF MEMSQL 3.0 B. Lazy Security Guard】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- MemSQL Start[c]UP 2.0 - Round 1(无聊练手B题)
http://codeforces.com/contest/452/problem/B B. 4-point polyline time limit per test 2 seconds memo ...
- MemSQL Start[c]UP 2.0 - Round 2 - Online Round
搞到凌晨4点一个没出,要gg了. A. Golden System http://codeforces.com/contest/458/problem/A #include<cstdio> ...
- MemSQL Start[c]UP 2.0 - Round 1
A. Eevee http://codeforces.com/contest/452/problem/A 字符串水题 #include<cstdio> #include<cstrin ...
随机推荐
- SpringMVC注入Spring的bean
一.Spring和SpringMVC两个IOC容器有什么关系呢? Spring的IOC容器包含了SpringMVC的IOC,即SpringMVC配置的bean可以调用Spring配置好的bean,反之 ...
- JAVA中如何使用SORT从大到小排
import java.util.Arrays;import java.util.Collections;public class Test { public static void main(Str ...
- 《JavaScript高级程序设计》笔记整理
欢迎各位指导与讨论 : ) -------------------------待续------------------------------- 本文为笔者在学习时整理的笔记,如有错漏,恳请各位指出, ...
- Android利用Jsoup解析html 开发网站客户端小记。
这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容.好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体 ...
- iOS面试
1.进程.线程的区别?2.“三次握手”是什么?具体细节,连接释放时需要几次“握手”,说出大概过程.3.TCP.UDP协议的区别?计算机网络分几层,以及TCP.Http协议各自工作在哪一层及相关细节.4 ...
- Ubuntu 下,修改 Mac address
ifconfig // check Mac address sudo ifconfig eth0 down sudo ifconfig eth0 hw ether xx:xx:xx:xx: ...
- linux dd 命令详解
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...
- [webpack] devtool配置对比
文件结构 -src -views -essay -list.js -detail.js -index.js -webpack.config.js 文件内容 [/src/.../index.js] im ...
- 关于XML序列化与CultureInfo
不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016. 这样的话带来一个问题,例如在中文环境下 ...
- Spring AOP动态切换数据源
现在稍微复杂一点的项目,一个数据库也可能搞不定,可能还涉及分布式事务什么的,不过由于现在我只是做一个接口集成的项目,所以分布式就先不用了,用Spring AOP来达到切换数据源,查询不同的数据库就可以 ...