A. Powered Addition(二进制性质-思维)
2024-10-09 01:44:33
\(拿样例来看1 7 6 5\)
\(6成长到7是最合理的,因为1s就可以实现而且对于后面来说最优\)
\(5成长到7是最合理的,因为2s就可以实现而且对于后面最优\)
\(发现了什么?二进制是可以组合成任意连续数的,而且每个数都倾向于成长到前面的最大数\)
\(只成长到前面最大的数有两个好处。\)
\(\color{Orange}{对后面最优,因为是满足条件的最小数字}\)
\(\color{Red}{耗费的秒数最小。因为是满足条件的最小数字,所以要增加的数字最小,需要的秒数也最小。}\)
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+9;
int t,n,ans;
int a[maxn];
int main()
{
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
int maxn=-1,last=a[1];
for(int i=2;i<=n;i++)
{
if(a[i]<last)
maxn=max(maxn,last-a[i]);
else if(a[i]>last)
last=a[i];
}
ans=0;
if(maxn<0) maxn=0;
while(maxn)
{
maxn>>=1;
ans++;
}
if(maxn==-1) cout<<0<<endl;
else cout<<ans<<endl;
}
}
最新文章
- R自动数据收集第一章概述——《List of World Heritage in Danger》
- 云计算CTO工作的具体内容(挺详细)
- UVAoj 348 - Optimal Array Multiplication Sequence
- 在OpenResty中使用lua-zlib的方法
- 关于JQ的$.deferred函数。参考网络文档
- [Node.js] Node + Redis 实现分布式Session方案
- iOS 开发之 Xcode6 创建真机调试证书
- 16、SQL基础整理(触发器.方便备份)
- 移植ok6410
- bzoj4197
- Red Hat Enterprise Linux 6安装步骤
- BootStrap--Tables(表格) MVC中不刷新做增,删,改(C#)
- 相机标定 matlab opencv ROS三种方法标定步骤(3)
- 云计算学习(5-1)云平台产品介绍-华为的FusionCloud产品
- Ubuntu15.10下制作Linux 操作系统优盘启动盘
- winform 写入txt(可以连续性的在文本内容后面追加)
- 【Java每日一题】20170327
- Tensorflow生成唐诗和歌词(上)
- [转]Tor Browser在国内Windows平台下的超详细教程
- php分享十五:php的命令行操作