题目大意,每天细菌会在早上选择分裂,晚上生长。

观察题目,我们可以发现。不管我们怎么分裂细菌,这一天晚上的总质量都是前一天晚上的总质量加上今天的细菌数。

那么我们肯定希望细菌分裂的越多越好,这样我们减少后几天的压力。所以前几天我们尽可能的让所有细菌都分裂。

如果把初始算成第零天,那么前 \(i\) 天如果细菌全部分裂就有 \(((1<<i)-1)\) 质量,第 \(i\) 天的细菌总数是 \((1<<(i-1))\) 。

所以如果 \(N\) 小于 \(((1<<i)-1+1<<(i-1))\) ,是肯定不行的。因为后几天细菌总质量会直接超过 \(N\) 。

如果 \(N\) 大于等于 \(((1<<i)-1+1<<(i-1))\) ,就可以实现在某一天质量正好到 \(N\) 。

然后就是处理后几天的问题了,通过手玩可以发现要么需要一天时间,要么就两天。用一个 \(if\) 语句判断一下就行了。

代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define INF 1LL<<62;
#define ll long long
#define For(X,From,To) for(ll X=From;X<=To;X++)
using namespace std;
ll T,N,Cnt[100],Num;
ll QP(ll B,ll K,ll Mod){ ll Ans=1;for(;K;K>>=1,B=B*B%Mod) if(K&1) Ans=Ans*B%Mod;return Ans;}
template<class T>void Read(T &X){
X=0;ll F=0;char Ch=getchar();
while(Ch<'0' || Ch>'9'){ F|=(Ch=='-');Ch=getchar();}
while(Ch>='0' && Ch<='9'){ X=X*10+(Ch^48);Ch=getchar();}
X=F? -X:X;
}
int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
Read(T);
while(T--){
Read(N);
Num=0;
memset(Cnt,0,sizeof(Cnt));
for(ll i=32;i>=1;i--)
if(N>=(1LL<<i)-1+(1LL<<(i-1))){
for(ll j=1;j<i;j++){
Num++;
Cnt[Num]=1LL<<(j-1);
}
N=N-((1LL<<i)-1);
if(N>0){
if((1LL<<i)>=N){
Num++;
Cnt[Num]=N-(1LL<<(i-1));
}else{
Num++;
Cnt[Num]=N/2-(1LL<<(i-1));
Num++;
Cnt[Num]=N%2;
}
}
printf("%lld\n",Num);
for(ll j=1;j<=Num;j++) printf("%lld ",Cnt[j]);
printf("\n");
break;
}
}
return 0;
}qwq

题解 CF1348D 【Phoenix and Science】的更多相关文章

  1. codefoces D. Phoenix and Science

    原题链接:https://codeforc.es/problemset/problem/1348/D 题意:给你一个体重为一克的细菌(它可以每天进行一次二分裂即一分为二体重均分:晚上体重增加1克)求最 ...

  2. Codeforces1348 题解

    AC代码连接 A Phoenix and Balance 显而易见,将前\(\frac{n}{2}-1\)个和最后1个分为1组,剩下的1组即为最优方案. B Phoenix and Science 这 ...

  3. Codeforces Round #638 (Div. 2)

    Contest Info Practice Link Solved A B C D E F 4/6 O O Ø  Ø     O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...

  4. [Phoenix] 七、如何使用自增ID

    摘要: 在传统关系型数据库中设计主键时,自增ID经常被使用.不仅能够保证主键的唯一,同时也能简化业务层实现.Phoenix怎么使用自增ID,是我们这篇文章的重点. 在传统关系型数据库中设计主键时,自增 ...

  5. Apache Phoenix系列 | 从入门到精通(转载)

    原文地址:https://cloud.tencent.com/developer/article/1498057 来源: 云栖社区 作者: 瑾谦 By 大数据技术与架构 文章简介:Phoenix是一个 ...

  6. phoenix从入门到精通

      第一章.phoenix入门简介 1. Phoenix定义 Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目. Phoenix是构建在HBase上的一个SQL ...

  7. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  8. 在DBeaver中phoenix查询报错:org.apache.phoenix.exception.PhoenixIOException: The system cannot find the path specified

    环境:Phoenix:4.4,win7系统 问题:Phoenix在查询hbase时,报"系统找不到指定路径". 解决: 请参见 https://distcp.quora.com/C ...

  9. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

随机推荐

  1. MySQL——关于索引的总结

    索引的优缺点 首先说说索引的优点:最大的好处无疑就算提高查询效率.有的索引还能保证数据的唯一性,比如唯一索引. 而它的坏处很明显:索引也是文件,我们在创建索引时,也会创建额外的文件,所以会占用一些硬盘 ...

  2. 海外网站如何通过代理IP进行采集?

    海外网站如何通过代理IP进行采集? 我们在做爬虫的时候,经常会遇到这种情况,爬虫最初运行的时候,数据是可以正常获取的,一切看起来都那么的美好,然而,不一会儿,就可能会出现403 Forbidden , ...

  3. 武装你的WEBAPI-OData便捷查询

    本文属于OData系列 目录(可能会有后续修改) 武装你的WEBAPI-OData入门 武装你的WEBAPI-OData便捷查询 武装你的WEBAPI-OData分页查询 武装你的WEBAPI-ODa ...

  4. 【hdu1030】“坐标表示法”

    http://acm.hdu.edu.cn/showproblem.php?pid=1030 算法:以顶点为原点,建立坐标系,一个数可以唯一对应一个三元组(x, y, z),从任意一个点出发走一步,刚 ...

  5. javaEE ->DBUtils&连接池

    第1章    DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是J ...

  6. python datetime 转timestamp

    import datetime import time d1=datetime.date.today() t1=time.mktime(d1.timetuple()) d2=datetime.date ...

  7. 接触Ubuntu的第一周大致总结

    VB上安装,很简单,和入门的帮助,man,--help. 基础的分区,FDISK,文件系统,目录 ,LS,cd,文件操作mkdir,rm,cp等,文件查看,cat,tac,less,等,文件查找loc ...

  8. U-Learning 后端开发日志(建设中...)

    目录 U-Learning--基于泛在学习的教学系统 项目背景 技术栈 框架 中间件 插件 里程碑 CentOS 7搭建JAVA开发环境 接口参数校验(不使用hibernate-validator,规 ...

  9. UIAutomator2的API文档(二)

    1.设备屏幕事件 熄灭屏幕d.screen_off() 唤醒屏幕d.screen_on() 屏蔽状态d.info.get('screenOn')#返回True or False 解锁屏幕d.unloc ...

  10. SpringMVC中使用@Valid和BindingResult进行参数验证

    我们知道,后端Controller层一般是第一层被调用,它用来接收参数以及转发,那么参数的校验也就在这一层,例如非空和格式校验等等. 手动验证 public String validPhone(Str ...