题目简化和分析:

  • \(a_{i}\ge a_{i-1}\) 已经满足直接跳过

  • \(a_{i}<a_{i-1}\) 我们就要将其的差进行二进制的分解,使得 \(a_{i-1}=a_i\)

我也不知道一开始我怎么想的还开了个 \(f\) 数组。

\(f_i=f_{i-1}+(2^{f_{i-1}}=i)\) 这部妥妥的 MLE。

所以还是暴力吧,毕竟二进制也快。

Solution:

注意以下代码的 for 循环 k 的初始值,估计是太大会 UB?

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db; const int N=1e5+50;
const int M=1e5+50;
const int Mod=1e9+7; inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
ll t,n;
ll a[N];
int main()
{
t=read();
while(t--){
n=read();
for(int i=1;i<=n;++i){
a[i]=read();
}
ll ans=0;
for(int i=2;i<=n;++i){
if(a[i]>=a[i-1]) continue;
for(ll k=31;k>=1;--k){
if(a[i]+(1<<k-1)<=a[i-1])
{
a[i]+=(1<<k-1);
ans=max(ans,k);
}
}
}
printf("%lld\n",ans);
}
return 0;
}

随机推荐

  1. 一个跨平台的`ChatGPT`悬浮窗工具

    一个跨平台的ChatGPT悬浮窗工具 使用avalonia实现的ChatGPT的工具,设计成悬浮窗,并且支持插件. 如何实现悬浮窗? 在使用avalonia实现悬浮窗也是非常的简单的. 实现我们需要将 ...

  2. P3133 [USACO16JAN] Radio Contact G 无线电通话

    P3133 [USACO16JAN] Radio Contact G 无线电通话 目录 P3133 [USACO16JAN] Radio Contact G 无线电通话 [USACO16JAN] Ra ...

  3. Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用

    前言 前段时间微软发布了适用于VS Code的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VS Code搭建.NET Core环境的教程看着还挺复杂的就一 ...

  4. 了解前端中的BFC(块级格式化上下文)

    BFC(块级格式化上下文) 什么是BFC 指的是一个块级渲染作用域,该区域内拥有一套完整的规则来约束块级盒子的布局,且与区域外部无关. 为什么要使用BFC 当一个盒子不设置高度,当其中的子元素都浮动时 ...

  5. Hexo博客使用valine评论系统无效果及终极解决方案

    注意事项 有一些博主valine评论系统无效果,有一些原因: 1.很大程度是因为next的版本升级导致某些参数设置不同 2.valine评论是基于LeanCloud,还有一个文章阅读次数功能也是用Le ...

  6. mysql中使用sql语句统计日志计算每天的访问量

    日志建表语句: CREATE TABLE `syslog` ( `syslogid` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) ...

  7. C# 处理 csv 文件中的双引号

    C# CSV 双引号处理 直接上代码,自己写的,有问题可以随时联系 // 没有保证所有的都能对上,目前只处理了自己所遇见的格式 public static string[] SplitStr(stri ...

  8. Python 潮流周刊第 13 期(2023-07-29)

    查看全文: https://pythoncat.top/posts/2023-07-29-weekly 文章&教程 1.Jupyter Notebook 7 隆重发布 (英) 2.Python ...

  9. TypeScript:Type 'boolean' is not assignable to type 'never'.

    问题原因 当我们声明一个空数组而不显示键入它并尝试向其中添加元素时,会发生该错误. 解决方案 声明数组类型即可 参考链接 https://bobbyhadz.com/blog/typescript-a ...

  10. Spring Boot 启动流程追踪(第一篇)

    1.初始化 SpringApplication public SpringApplication(ResourceLoader resourceLoader, Class<?>... pr ...