A. Powered Addition(二进制性质-思维)
\(拿样例来看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;
}
}
A. Powered Addition(二进制性质-思维)的更多相关文章
- CF#633 C. Powered Addition 思维
Powered Addition 题意 给出n个数字,现在你可以在第x秒,选择任意数量的下标,让这些位置上的数加上\(2^{x-1}\),问最快需要几秒使得数列变成一个非递减的序列. 思路 让求x的最 ...
- L - Looking for Taste Gym - 101991L 二进制枚举/思维
方法一:因为最多是10的六次方,所以可以直接枚举二进制上的每一位来得到最优结果. AC代码: #include<iostream> #include<stack> #inclu ...
- HDU - 6435 Problem J. CSGO 2018 Multi-University Training Contest 10 (二进制枚举+思维)
题意:有N个主武器(MW)和M个副武器(SW),每个武器都有自己的S值,和K个附加属性xi.要选取一对主副武器搭配,搭配后获得的性能由该公式得出: 求获得最大的性能为多少. 分析:由于|xm - xs ...
- CF633(div.2)C. Powered Addition
题目描述 http://codeforces.com/contest/1339/problem/C 给定一个长度为 \(n\) 的无序数组,你可以在第 \(x\) 秒进行一次下面的操作. 从数组选取任 ...
- POJ 2777 Count Color (线段树成段更新+二进制思维)
题目链接:http://poj.org/problem?id=2777 题意是有L个单位长的画板,T种颜色,O个操作.画板初始化为颜色1.操作C讲l到r单位之间的颜色变为c,操作P查询l到r单位之间的 ...
- MindManager教程:高中数学函数思维导图怎么画
说起函数,大家应该都不陌生吧,函数不论是在初中还是在高中都是需要重点学习的知识点,不仅仅是重点,更是作为难点曾出现在高考最后一道大题中.那今天我们就来做一个函数思维导图,来简单地了解一下关于函数的一些 ...
- Codeforces Round #633 (Div. 2)
Codeforces Round #633(Div.2) \(A.Filling\ Diamonds\) 答案就是构成的六边形数量+1 //#pragma GCC optimize("O3& ...
- Educational Codeforces Round 15 (A - E)
比赛链接:http://codeforces.com/contest/702 A. Maximum Increase A题求连续最长上升自序列. [暴力题] for一遍,前后比较就行了. #inclu ...
- HDU 3949 XOR [线性基|高斯消元]
目录 题目链接 题解 代码 题目链接 HDU 3949 XOR 题解 hdu3949XOR 搞死消元找到一组线性无关组 消出对角矩阵后 对于k二进制拆分 对于每列只有有一个1的,显然可以用k的二进制数 ...
随机推荐
- Hadoop(二) 单节点案例grep和wordcount|4
前提步骤安装Hadoop,安装步骤: https://www.jianshu.com/p/2ce9775aeb6e 单节点案例官方文档地址:http://hadoop.apache.org/docs/ ...
- Java编程最差实践常见问题详细说明(2)转
Java编程最差实践常见问题详细说明(2)转 2012-12-13 13:57:20| 分类: JAVA | 标签:java |举报|字号 订阅 反射使用不当 错误的写法: Java代 ...
- MD5中使用16进制
MD5中使用16进制消息摘要 分类: java_secruity2012-12-28 13:11 719人阅读 评论(0) 收藏 举报 消息摘要 由于数据在计算机中的表示,最终以二进制的形式存在,所以 ...
- 修改vs默认浏览器
右键你的Html或者网页项目,选择"使用以下工具浏览" 跳出选择框,选择你想要的浏览器作为默认值即可,也可以添加你想要的浏览器.
- Sprint 5 summary: UI 界面更新,Azure端部署和用户反馈分析 12/28/2015
本次sprint主要完成的任务有对手机APP的UI界面的更新,同时对Azure客户端的部署进行了相应的学习和有关的程序设计.同时对于ALPHA release的用户反馈做出相应的分析以确定接下来工作的 ...
- Problem C Careful Ascent
数学问题. 在不经过shield时,竖直速度是1.所以时间就是y/1=y,,,,在经过shield时,时间为shield的数值长度*影响因素,然后总时间把他们加起来,最后再用水平方向的长度除以总时间, ...
- linux sysbench : CPU性能测试详解
1.sysbench基础知识 sysbench的cpu测试是在指定时间内,循环进行素数计算 素数(也叫质数)就是从1开始的自然数中,无法被整除的数,比如2.3.5.7.11.13.17等.编程公式:对 ...
- CLDAPReflectionDDoS(CLDAP反射放大攻击)
CLDAP Reflection DDoS 0x01 LDAP: 全称为Lightweight Directory Access Protocol,即轻量目录访问协议,基于X.500标准: 目录服务就 ...
- pytorch 中序列化容器nn.Sequential
按下图顺序搭建以及执行
- for嵌套setTimeout的心得
export default { data() { return { dialogList: [] } }, created() { this.setList() }, methods: { setL ...