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 3D 知识点大全以及实例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- 在github上建立自己的网站
学了前端小半年,如今写了个自己的网页想要去应聘,却发现部署很麻烦,部署到阿里云之类,买域名啊啥的还要收费,说贵也不贵,但我就是傲娇~ google一下了解到Github有一个Github pages的 ...
- 洛谷P1462 通往奥格瑞玛的道路[二分答案 spfa 离散化]
题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...
- 第1章 重构,第一个案例(1):糟糕的statement函数设计
1. 启航:影片出租,计算每一位顾客的消费金额并打印清单 1.1 场景说明: (1)影片分类规则:普通片.儿童片和新片等3类 (2)每种影片计算租金的方式. ①普通片:基本租金为2元,超过2天的部分每 ...
- python的历史
Python的诞生 Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承. 现在,p ...
- 2016-2017-2《程序设计与数据结构》学生博客&git@OSC
2016-2017-2<程序设计与数据结构>学生博客&git@OSC 博客园 20162301张师瑜 20162302杨京典 20162303石亚鑫 20162304张浩林 201 ...
- 微信开发 企业号(二)-- 回调模式之Tooken验证 .net/python
在企业号开发者中心中,有加密解密源代码,供给开发者使用.(加解密库下载) 由于官方只提供了python2.*的类库,使用python3.*的朋友可以再最后下载我修改后的py文件(仅修改验证Tooken ...
- ionic android双击退出应用和物理返回按钮隐藏键盘的实现
angular.module('starter', ['ionic', 'route', 'config', 'global', 'commonJs', 'ngCordova']) .run(['$i ...
- js的this上下文的坑
很明显,this这个坑,在多层嵌套的时候还是一样被废,不管是call, apply还是bind. 例如: var fun = function() { this.name = 'test'; var ...
- How To Set Up an OpenVPN Server on Ubuntu 14.04
Prerequisites The only prerequisite is having a Ubuntu 14.04 Droplet established and running. You wi ...