POJ2116 Death to Binary?
/*
POJ2116 Death to Binary?
http://poj.org/problem?id=2116
齐肯多夫定理 */
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <queue>
#include <iostream>
#include <map>
#include <set>
//#define test
using namespace std;
const int Nmax=1e6+;
char s[],a[],b[],c[],tmp[],t[];
long long f[];
vector<long long> v;
vector<long long>::iterator it;
long long scan()
{
char c=getchar();
while(c==' '||c=='\n')
c=getchar();
if(c==-)
return -;
int sz=;
while(c>='' && c<='')
{
s[++sz]=c;
c=getchar();
}
long long x=0LL;
for(int i=;i<=sz;i++)
{
x+=1LL*(s[i]-'')*f[sz-i];
}
return x;
}
int id(long long x)
{
int now=upper_bound(v.begin(),v.end(),x)-v.begin();
if(now!=)
now--;
return now;
}
char* get(long long x)
{
int sz=;
for(int i=;i<=;i++)
tmp[i]='';
//printf("\n");
while(x>)
{
//printf("x:%lld\n",x);
tmp[id(x)]='';
sz=max(sz,id(x));
//printf("%d ",id(x));
//printf("%lld",f[id(x)]);
x-=f[id(x)];
}
//printf("\n");
//for(int i=0;i<=40;i++)
//printf("%c",tmp[i]);
//printf("\n"); //printf("%s\n",tmp); for(int i=sz;i>=;i--)
t[sz-i]=tmp[i];
t[sz+]='\0';
return t;
}
void print()
{
int n=strlen(c);
int sum=n+;
int an=strlen(a);
int bn=strlen(b);
for(int i=;i<=sum-an;i++)
putchar(' ');
printf("%s\n",a);
putchar('+');
for(int i=;i<=sum-bn-;i++)
putchar(' ');
printf("%s\n",b);
putchar(' ');
putchar(' ');
for(int i=;i<=n;i++)
putchar('-');
putchar('\n');
putchar(' ');
putchar(' ');
printf("%s\n\n",c);
}
int main()
{
#ifdef test
#endif
//freopen("poj2166.in","r",stdin);
f[]=1LL;
f[]=2LL;
for(int i=;i<;i++)
f[i]=f[i-]+f[i-];
for(int i=;i<=;i++)
v.push_back(f[i]);
while()
{
long long x=scan();
//printf("%lld\n",x);
if(x==-)
break;
long long y=scan();
if(y==-)
break;
long long ans=x+y;
//long long ttt=40LL;
//while(ttt>0)
//{
//printf("%d\n",id(ttt));
//printf("%lld\n",f[id(ttt)]);
//ttt-=f[id(ttt)];
//}
//strcpy(a,get(40LL));
//printf("%s\n",a);
strcpy(a,get(x));
strcpy(b,get(y));
strcpy(c,get(ans));
print();
}
return ;
}
POJ2116 Death to Binary?的更多相关文章
- Death to Binary? 分析模拟
/** 题目:Death to Binary? 链接:https://vjudge.net/contest/154246#problem/T 题意:略. 思路: 注意事项: 给的字符串存在前导0: 存 ...
- poj 2116 Death to Binary? 模拟
Death to Binary? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1707 Accepted: 529 D ...
- Death to Binary? (模拟)题解
思路: 除去前导0,注意两个1不能相邻(11->100),注意 0 *** 或者*** 0或者0 0情况 用string的reverse()很舒服 代码: #include<cstdio& ...
- [kuangbin带你飞]专题十四 数论基础
ID Origin Title 111 / 423 Problem A LightOJ 1370 Bi-shoe and Phi-shoe 21 / 74 Problem B ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- KUANGBIN带你飞
KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题 //201 ...
- [kuangbin带你飞]专题1-23题目清单总结
[kuangbin带你飞]专题1-23 专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 Fli ...
- kuangbin专题 数论基础 part1?
线段树专题太难了,那我来做数学吧! 但数学太难了,我......(扯 这两天想了做了查了整理了几道数学. 除了一些进阶的知识,像莫比乌斯反演,杜教筛,min25学不会我跳了,一些基础的思维还是可以记录 ...
- ACM--[kuangbin带你飞]--专题1-23
专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 FliptilePOJ 1426 Find T ...
随机推荐
- B1789 Y型项链 贪心
想明白之后就是一道大水题,就是两两把最长公共前缀求出来,然后直接取最长的,然后就直接暴力算就行了... 题干: Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在 ...
- mysql 年龄计算(根据生日字段)
mysql 年龄计算(根据生日字段) year( from_days( datediff( now( ), birthdate))) //获取年龄 now() 当前时间,精确到秒 datediff(b ...
- Oracle 批量插入值
工作中常遇到将Excel文档数据转为SQL语句,然后再将SQL语句插入到数据库已完成数据转移保存到数据库中,下面介绍下如何一次性插入多条SQL语句,先抛个图: 由于真实数据不变给大家看,所以这里是做了 ...
- 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点
上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...
- BZOJ 4563 错排+高精度
思路: 把障碍移到对角线 就发现 这是个错位排列问题 用错排公式即可解 s[i]=(s[i-1]+s[i-2])*i //By SiriusRen #include <cstdio> #i ...
- 显示程序输出并复制到文件(tee 命令)
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件. tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件. 语法 tee [-ai][--help][--v ...
- HTML基础练习
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 【Linux】磁盘分区
我们在Linux操作过程中,可能会遇到磁盘分区的问题.这篇文章是对/dev/sdb 这块磁盘进行分区. linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d) ...
- 12 Python+selenium对日期控件进行处理(采用执行JS脚本)
[环境信息] Python34+IE+windows2008 [说明] 1.对于日期控件,没有办法通过定位元素再直接传值的方式处理.可以采用执行JavaScript处理. PS:还要去学学js怎么写, ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作
http://www.cnblogs.com/wuhuacong/p/3872890.html 我们在使用EasyUI的时候,很多情况下需要使用到表格控件datagrid,这个控件控件非常强大,使用起 ...