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

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

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

如果把初始算成第零天,那么前 \(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. JMeter-SHA256加密算法接口测试

    前言 我们已经学过了如何利用python脚本对SHA256加密接口进行测试,还没学会的小伙伴们可以看回我写的随笔Python-SHA256加密算法接口测试,那么,对于SHA256加密算法接口,我们如何 ...

  2. docker部署微服务遇到的问题二

    自己尝试将微服务部署到docker上面,期间按照周立的微服务架构实战13章进行学习 按照书上的步骤,一切部署成功之后,尝试访问,一直没有成功访问,周五部署了两遍 折腾了一下 还是没有找到为啥,周一继续 ...

  3. app测试、web测试-怎么测?

    app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...

  4. Nginx服务器的安装和卸载

    Nginx的安装 安装Nginx之前,需要先获取Nginx的安装文件.我们可以在http://nginx.org/en/download.html获取各个版本的Nginx安装文件.大家可以按照自己的需 ...

  5. nginx default server

    配合server_name _ 可以匹配所有的域名,在设置default server 可以轻松屏蔽一些非域名访问的请求. 配置如下 server { listen 80 default_server ...

  6. 【雕爷学编程】Arduino动手做(6)---声音传感器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

  7. 运行web容器实例

  8. 第一篇:百度AI注册使用

    百度AI (https://ai.baidu.com/)点击右上角<控制台>进行登录 内容审核: 操作文档:

  9. vscode环境配置(一)——C Program运行

    ctrl + shift +p 打开应用商店 搜索 C/C++  和 Code Runner(一键编译运行)  

  10. A == B ?(hdu2054)

    输入格式:直接循环,同时输入两个不带空格未知长度的字符串. 思考:不带空格未知长度且同时输入,用两个char s[maxsize]定义两个字符数组,再用scanf_s()函数同时输入两个字符串. 注意 ...