Death to Binary? 分析模拟
/**
题目:Death to Binary?
链接:https://vjudge.net/contest/154246#problem/T
题意:略。
思路:
注意事项:
给的字符串存在前导0;
存在0+0 */ #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include <vector>
#include <cmath>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5+;
const double eps = 1e-;
ll f[];
int la, lb, lc;
void init()
{
f[] = ;
f[] = ;
for(int i = ; i < ; i++){
f[i] = f[i-]+f[i-];
}
} void removeLeadZero(char a[])
{
int len = strlen(a);
int i = ;
while(i<len&&a[i]==''){
i++;
}
if(i==len){
a[] = '';
a[] = '\0';
}else
strcpy(a,a+i);
}
void canonical(char a[])
{
int len = strlen(a);
int flag = ;
char temp[];
int t = ;
temp[t++] = a[];
for(int i = ; i < len; i++){
if(a[i]==a[i-]&&a[i]==''){
flag = ;
if(t!=){
temp[t-] = '';
t--;
}
temp[t++] = '';
temp[t++] = '';
i++;
while(i<len){
temp[t++] = a[i++];
}
break;
}else
{
temp[t++] = a[i];
}
}
temp[t] = '\0';
if(flag) canonical(temp);
strcpy(a,temp);
}
void getC(ll x,char c[])
{
lc = ;
int pos;
for(int i = ; i < ; i++){
if(f[i]>x){
pos = i;
break;
}
}
pos = pos-;
while(pos>=){
if(f[pos]<=x){
c[lc++] = '';
x -= f[pos];
}else
{
c[lc++] = '';
}
pos--;
}
if(lc==){
c[lc++] = '';
}
c[lc] = '\0';
}
void print(char a[],char b[],char c[])
{
canonical(a);
canonical(b);
canonical(c);
//printf("a = %s b = %s c = %s\n",a,b,c);
lc = strlen(c);
la = strlen(a);
lb = strlen(b);
int sp = +lc-la;
while(sp--){
printf(" ");
}
printf("%s\n",a);
printf("+");
sp = +lc-lb-;
while(sp--){
printf(" ");
}
printf("%s\n",b);
printf(" ");
sp = lc;
while(sp--){
printf("-");
}
printf("\n");
printf(" ");
printf("%s\n\n",c);
}
int main()
{
char a[], b[], c[];
init();
while(scanf("%s%s",a,b)==)
{
removeLeadZero(a);
removeLeadZero(b);
//printf("a = %s\n",a);
//printf("b = %s\n",b);
ll sa, sb, sc;
sa = sb = ;
la = strlen(a);
lb = strlen(b);
for(int i = la-; i >= ; i--){
if(a[i]==''){
sa += f[la--i];
}
}
for(int i = lb-; i >= ; i--){
if(b[i]==''){
sb += f[lb--i];
}
} sc = sa+sb;
getC(sc,c);
//printf("a = %s\n",a);
//printf("c = %s\n",c);
//printf("sa = %lld sb = %lld\n",sa,sb);
print(a,b,c);
}
return ;
}
Death to Binary? 分析模拟的更多相关文章
- Death to Binary? (模拟)题解
思路: 除去前导0,注意两个1不能相邻(11->100),注意 0 *** 或者*** 0或者0 0情况 用string的reverse()很舒服 代码: #include<cstdio& ...
- poj 2116 Death to Binary? 模拟
Death to Binary? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1707 Accepted: 529 D ...
- 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
[前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...
- 2017 Wuhan University Programming Contest (Online Round) C. Divide by Six 分析+模拟
/** 题目:C. Divide by Six 链接:https://oj.ejq.me/problem/24 题意:给定一个数,这个数位数达到1e5,可能存在前导0.问为了使这个数是6的倍数,且没有 ...
- POJ2116 Death to Binary?
/* POJ2116 Death to Binary? http://poj.org/problem?id=2116 齐肯多夫定理 */ #include <cstdio> #includ ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- 从session实现机制分析模拟请求验证码的可行性(转)
悲剧了,发现写完这篇blog没有配上这个格调超高的标题. 1.0问题背景 现在要实现一个带验证码网站的的自动登陆功能.验证码识别过程不再这篇文章的讨论之中.(之后有篇文章我会详细的总结验证码的识别 ...
- Codeforces 916B Jamie and Binary Sequence ( 模拟 && 思维 )
题意 : 给出一个数 n ,要求你用 k 个二的幂来组成这个数,要求输出这 k 个二的幂的指数,如果有多解情况则优先输出最大指数最小的那一个且要求按字典序输出,不存在则输出 No 分析 : 先来说一 ...
- fzu 2250 不可能弹幕结界 分析+模拟,考察思维严谨。
Problem 2250 不可能弹幕结界 Accept: 5 Submit: 13Time Limit: 1000 mSec Memory Limit : 65536 KB Problem ...
随机推荐
- RowState 介绍
RowState 介绍 从不同位置载入 DataRow 后 RowState 的状态修改, 更改, 删除后的 DataRow.RowState 转化使用 AcceptChanges, RejectCh ...
- nginx+php简单配置环境
首先我的需求是: 1. 需要有PHP的服务.web目录存放在各处. 2. 需要有多个端口. 步骤: 1. 安装nginx php,我的系统是mac 所以安装使用brew, 一键完成... 2. 开启p ...
- Zookeeper的功能以及工作原理(转)
本文转自https://www.cnblogs.com/felixzh/p/5869212.html Zookeeper的功能以及工作原理 1.ZooKeeper是什么?ZooKeeper是一个分 ...
- Bootstrap响应式布局
Bootstrap响应式布局可以使用栅格化系统,其实就是不同的列组合,配合起来便能组合出强大的功能,系统会自动分为最多12列,超出12列会作为一个整体另起一行,像制作表格table的合并列,功能跟co ...
- css自动换行与不换行
1.自动换行 div{ word-wrap: break-word; word-break: normal; } 2.不换行 div{ white-space:nowrap; } 3.浮动效果不换行 ...
- POJ 3020 Antenna Placement 最大匹配
Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6445 Accepted: 3182 ...
- [转载]深入理解java多态性
FROM:http://blog.csdn.net/thinkGhoster/article/details/2307001 昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整 ...
- RocketMQ之broker读取本地文件数据
这个load操作发生在启动broker的时候. 所以我们直接进入DefaultMessageStore的load()方法: /** * 加载数据 * * @throws IOException */ ...
- html5表单验证(Bootstrap)
html5表单验证(Bootstrap) 邮箱验证: <input name="email" type="text" placeholder=&quo ...
- 用BSF + Beanshell使Java程序能够运行字符串形式的代码(转载)
BSF(Bean Scripting Framework)最初是IBM Alpha工作组的项目,后来贡献给了Apache,BSF使Java能够更好的与各种流行脚本语言整合,实现不同语言之间的交互功能. ...