当前位置:网站首页>【CodeForces】CF1338A - Powered Addition【二进制】
【CodeForces】CF1338A - Powered Addition【二进制】
2022-07-03 02:00:00 【是王同学呀】
题意
给出一个长度为 n ( n < = 100000 ) n ( n < = 100000 ) n(n<=100000)的数组,在第 i i i秒时可以任意选出一些数使它们的值增加 2 i − 1 2^{i-1} 2i−1,问如果要使得该数组不递减至少需要多少秒?
思路
遍历数组,维护一个前缀最大值,如果当前 a [ i ] < m a x c u r a[i]<max_{cur} a[i]<maxcur,说明当前 a [ i ] a[i] a[i]需要补齐 m a x c u r − a [ i ] max_{cur}-a[i] maxcur−a[i]大小,然后当前 a [ i ] a[i] a[i]变为 m a x c u r max_{cur} maxcur,最后 m a x ( m a x c u r − a [ i ] ) max(max_{cur}-a[i]) max(maxcur−a[i])的二进制位数就是我们要求的答案。
AC代码
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef long long ll;
typedef pair<int, int> p;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int maxn = 2e5 + 10;
int a[maxn];
int h[maxn];
int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int t;
cin >> t;
while(t--){
int n;
cin >> n;
int max_cur = INT32_MIN;
int max_delta = INT32_MIN;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = 1; i <= n; i++){
if(a[i] > max_cur) max_cur = a[i];
else max_delta = max(max_delta, max_cur-a[i]);
}
if(max_delta==INT32_MIN) cout<<0<<endl;
else{
int cnt = 0;
while(max_delta) max_delta = max_delta >> 1, cnt++;
cout<<cnt<<endl;
}
}
return 0;
}
边栏推荐
- Stm32f407 ------- IIC communication protocol
- A 30-year-old software tester, who has been unemployed for 4 months, is confused and doesn't know what to do?
- [leetcode] 797 and 1189 (basis of graph theory)
- 502 (bad gateway) causes and Solutions
- 创建+注册 子应用_定义路由,全局路由与子路由
- Basic operation of view
- easyPOI
- 可视化yolov5格式数据集(labelme json文件)
- 《上市风云》荐书——唯勇气最可贵
- Redis:Redis的简单使用
猜你喜欢
His experience in choosing a startup company or a big Internet company may give you some inspiration
Huakaiyun (Zhiyin) | virtual host: what is a virtual host
elastic stack
Comment communiquer avec Huawei Cloud IOT via le Protocole mqtt
自定义组件、使用npm包、全局数据共享、分包
stm32F407-------IIC通讯协议
机器学习笔记(持续更新中。。。)
Bottleneck period must see: how can testers who have worked for 3-5 years avoid detours and break through smoothly
[shutter] pull the navigation bar sideways (drawer component | pageview component)
Network security - vulnerabilities and Trojans
随机推荐
elastic stack
iptables 4层转发
Internal connection query and external connection
[Yu Yue education] reference materials of love psychology of China University of mining and technology
Analyzing several common string library functions in C language
Network security - DNS spoofing and phishing websites
苏世民:25条工作和生活原则
Reprint some Qt development experience written by great Xia 6.5
Network security - phishing
Network security - talking about security threats
Missing library while loading shared libraries: libisl so. 15: cannot open shared object file: No such file
[Yu Yue education] reference materials of chemical experiment safety knowledge of University of science and technology of China
疫情当头,作为Leader如何进行团队的管理?| 社区征文
Distributed transaction solution
stm32F407-------ADC
Network security - Trojan horse
【Camera专题】手把手撸一份驱动 到 点亮Camera
去除网页滚动条方法以及内外边距
2022 financial product revenue ranking
Leetcode(540)——有序数组中的单一元素