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 ...
随机推荐
- [WPF系列]-高级部分 需要区分的东东
ContentControl VS ContentPresenter What's the difference between ContentControl and ContentPresenter ...
- pyqt5-为QListWidget添加右键菜单
如何在pyqt5下为QListWidget添加右键菜单? 能百度到的均是pyqt4下的,有些貌似并不好用. 在尝试了很多方法后,下面贴出可用的方法: from PyQt4 import QtCore, ...
- CODEVS3037 线段覆盖 5[序列DP 二分]
3037 线段覆盖 5 时间限制: 3 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 数轴上有n条线段,线段的 ...
- Django博客功能实现—文章评论功能
功能:在A网页提交一个评论Forms_B,提交之后自动刷新页面,能够显示刚刚的画面思路:利用一个已经创建的表单,通过视图让其在网页中表现出来,填写玩信息之后提交,会提交到一个新的视图里面去做接受,接受 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 员工离职管理
当公司有几万人,上千家加盟网点,几个庞大的直属分公司后,系统账户的有效管理也是一个头疼的问题,把所有的帐户及时进行科学的管理,有人员离职时及时进行记录,防止离职人员的系统账户有各种安全漏洞. 谁什么时 ...
- win2008无密码共享
http://jingyan.baidu.com/album/76a7e409dc4b5cfc3a6e1566.html?picindex=15
- Apache Shiro系列二,概述 —— 基本概念
做任何事情,首先要双方就一些概念的理解达成一致,这样大家就有共同语言,后续的沟通效率会高一些. #,Authentication,认证,也就是验证用户的身份,就是确定你是不是你,比如通过用户名.密码的 ...
- 【跟着子迟品 underscore】如何优雅地写一个『在数组中寻找指定元素』的方法
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- c#JS调用
using MSScriptControl; using System; using System.Collections.Generic; using System.Reflection; usin ...
- CSS编写技巧
1.尽量少的使用全局的重置代码 全局重置代码:*{margin:0; padding:0;}对于熟悉CSS的人来说并不陌生,并且有很多人的第一句CSS代码就是这句.它可以避免不同浏览器的默认间距不同而 ...