当前位置:网站首页>【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;
}
边栏推荐
- Detailed introduction to the deployment and usage of the Nacos registry
- Reprint some Qt development experience written by great Xia 6.5
- Leetcode (540) -- a single element in an ordered array
- 苏世民:25条工作和生活原则
- Iptables layer 4 forwarding
- easyPOI
- File class (add / delete)
- Solution for processing overtime orders (Overtime unpaid)
- y54.第三章 Kubernetes从入门到精通 -- ingress(二七)
- Query product cases - page rendering data
猜你喜欢

Asian Games countdown! AI target detection helps host the Asian Games!

创建+注册 子应用_定义路由,全局路由与子路由

可视化yolov5格式数据集(labelme json文件)

Use go language to realize try{}catch{}finally

What are the differences between software testers with a monthly salary of 7K and 25K? Leaders look up to you when they master it

详细些介绍如何通过MQTT协议和华为云物联网进行通信

微信小程序開發工具 POST net::ERR_PROXY_CONNECTION_FAILED 代理問題

Query product cases - page rendering data

Solution for processing overtime orders (Overtime unpaid)

Distributed transaction solution
随机推荐
Certaines fonctionnalités du développement d'applets
elastic stack
Everything file search tool
How can retail enterprises open the second growth curve under the full link digital transformation
Leetcode(540)——有序数组中的单一元素
Visualisation de l'ensemble de données au format yolov5 (fichier labelme json)
Network security - scanning and password explosion 2
Answers to ten questions about automated testing software testers must see
Machine learning notes (constantly updating...)
微信小程序开发工具 POST net::ERR_PROXY_CONNECTION_FAILED 代理问题
502 (bad gateway) causes and Solutions
leetcode961. Find the elements repeated N times in the array with length 2n
Performance test | script template sorting, tool sorting and result analysis
浏览器是如何对页面进行渲染的呢?
y54.第三章 Kubernetes从入门到精通 -- ingress(二七)
File class (check)
[shutter] top navigation bar implementation (scaffold | defaulttabcontroller | tabbar | tab | tabbarview)
The Sandbox阐释对元宇宙平台的愿景
Network security - scan
DML Foundation