JZOJ.3769【NOI2015模拟8.14】A+B
Description
你的任务很简单,给你两个用斐波拉切数最大化表示的两个数字,输出他们相加后用斐波那契最大化表示的数字。
Input
每一行开头一个n,表示长度
然后紧接着n个数字,为从低位到高位。
Output
Sample Input
4 0 1 0 1
5 0 1 0 0 1
Sample Output
6 1 0 1 0 0 1
Data Constraint
对于100%的数据 长度 <= 1000000
算出十进制值相加后再用斐波那契最大化表示显然接受不了,我们得在序列里找出规律。
这里有两个不难发现的运算法则:
1.如果有连续两位i,i-1是1,那么它们可以“运算”使得第三位i+1是1. 如 0 1 0 1 1 0 = 0 1 0 0 0 1
2.如果这个位i是2,那么它可以使它的后一位i+1和前两位i-2是1. 如 0 0 2 0 0 1 0=1 0 0 1 0 1 0
随便弄上十几次这样就可以了。
#include<cstdio>
#include<iostream>
using namespace std;
int f[],n,x,len1,len2;
int main(){
f[]=;
f[]=;
f[]=;
scanf("%d",&len1);
for (int i=;i<=len1;i++)
scanf("%d",&f[i]);
scanf("%d",&len2);
for (int i=;i<=len2;i++){
int x=;
scanf("%d",&x);
f[i]+=x;
}
int qwq=max(len1,len2);
int qoq=true;
do{
qoq=false;
int qaq=qwq;
for (int i=;i<=qwq;i++){
if ((f[i-])&&(f[i])){
f[i+]++;
qwq=max(qwq,i+);
f[i]--;
f[i-]--;
}
}
if (f[]==){
f[]++;
f[]=;
}
if (f[]==){
f[]++;
qwq=max(qwq,);
f[]++;
f[]=;
}
bool quq=true;
do{
quq=false;
for (int i=;i<=qaq;i++){
if (f[i]>=){
quq=true;
f[i+]++;
qwq=max(i+,qwq);
f[i-]++;
f[i]--;
f[i]--;
}
}
if (quq) qoq=true;
} while(quq);
} while(qoq); //直到没修改为止
printf("%d ",qwq);
for(int i=;i<=qwq;i++)
printf("%d ",f[i]);
return ;
}
神奇的代码
JZOJ.3769【NOI2015模拟8.14】A+B的更多相关文章
- JZOJ【NOIP2013模拟联考14】隐藏指令
JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...
- JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠
JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...
- JZOJ.5274【NOIP2017模拟8.14】数组
Description
- JZOJ.5275【NOIP2017模拟8.14】水管
Description
- JZOJ.5273【NOIP2017模拟8.14】亲戚
Description
- JZOJ.3777【NOI2015模拟8.17】最短路(shortest)
Description 小Y最近学得了最短路算法,一直想找个机会好好练习一下.话虽这么说,OJ上最短路的题目都被他刷光了.正巧他的好朋友小A正在研究一类奇怪的图,他也想凑上去求下它的最短 ...
- [JZOJ]100047. 【NOIP2017提高A组模拟7.14】基因变异
21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变 ...
- [JZOJ]100046【NOIP2017提高A组模拟7.14】收集卡片
Star 计划订购一本将要发行的周刊杂志,但他可不是为了读书,而是-- 集卡. 已知杂志将要发行 N 周(也就是 N 期),每期都会附赠一张卡片.Star 通 过种种途径,了解到 N 期杂志附赠的卡片 ...
- JZOJ[3771] 【NOI2015模拟8.15】小 Z 的烦恼
题目 描述 题目大意 有从111到nnn的数字,每个数字都可以放在一个盒子里(可以不放).一旦放,满足: 如果它不在第mmm个盒子,那么它的两倍一定在后面一个盒子里. 如果它不在第111个盒子,那么它 ...
随机推荐
- git 教程一
git 是一个开源的分布式版本控件系统,用于敏捷高效地处理任何或小或大的项目. Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件. Git 与常用 ...
- Ubuntu 安装配置 JDK+Tomcat+Nginx
安装配置JDK 下载安装 # 下载: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=acc ...
- Python 射线法判断一个点坐标是否在一个坐标区域内
class Point: lng = '' lat = '' def __init__(self, lng, lat): self.lng = lng self.lat = lat # 求外包矩形 d ...
- TI博客文章-4-20mA电流环路发送器入门
TI博客文章-4-20mA电流环路发送器入门http://bbs.21ic.com/forum.php?mod=viewthread&tid=1610834&fromuid=10995 ...
- python 特征缺失值填充
python数据预处理之缺失值简单处理:https://blog.csdn.net/Amy_mm/article/details/79799629 该博客总结比较详细,感谢博主. 我们在进行模型训练时 ...
- Linux 基础学习(第二节)
free命令用于显示当前系统中内存的使用量信息,格式为:“free [-h]”. 为了保证Linux系统不会突然卡住宕机,因此内存使用量应该是运维人员时刻要关注的数据啦,咱们可以使用-h参数来以更人性 ...
- mybatis想要在控制台显示sql语句配置文件
在src目录下创建一个properties文件 配置内容如下 log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apach ...
- 把一个base64编码的图片绘制到canvas (canvas的图片在转成dataurl)
把一个base64编码的图片绘制到canvas 需要引入jquery. <canvas id="myCanvas" width="800" height= ...
- Newton's method Drawback and advantage
Newton Raphson Method: Advantages and Drawbacks: v=QwyjgmqbR9s" target="_blank"& ...
- U3D Debug.DrawRay
Debug.DrawRay第二个参数方向,事实上需要手动输入长度.并且不是无限长的射线,是根据方向的长度来的 如果参数不指定颜色,绘制出来的就是白色