您当前的位置: 首页 > 

对方正在debug

暂无认证

  • 4浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Phoenix and Science(1900/贪心构造/思维)

对方正在debug 发布时间:2020-05-07 13:01:00 ,浏览量:4

题目

题意:给定数n,和一个初始mass为1的细胞,细胞每天可以选择分裂为mass相等的2个细胞(如1分为2个0.5),且每晚所有的细胞mass都会加1。现在问最少需要多少晚,使得细胞mass和为n。并输出分裂方案,即每天选择分裂的细胞数。 官方&代码 思路:观察发现,假设当前细胞总数为x(分裂前),那么过了当晚,增加的mass数为 [ x , 2 ∗ x ] [x,2*x] [x,2∗x]。为了使需要的天数最少,我们选择贪心尽量多的分裂。构造关于2的等比数列 1 , 2 , 4... 1,2,4... 1,2,4...直到其和要超过n为止,记和为 s u m sum sum,我们只需再补充 n − s u m n-sum n−sum个mass即可,将该值插入原来的等比数列中即可。要输出的即是所得到的序列的差值。 题解代码

#include 
using namespace std;

void solve(){
  vectorinc;   
  int N;
  cin>>N;
  //construct sequence 1, 2, 4, ... while sum             
关注
打赏
1664895754
查看更多评论
0.2728s