\(拿样例来看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(二进制性质-思维)的更多相关文章

  1. CF#633 C. Powered Addition 思维

    Powered Addition 题意 给出n个数字,现在你可以在第x秒,选择任意数量的下标,让这些位置上的数加上\(2^{x-1}\),问最快需要几秒使得数列变成一个非递减的序列. 思路 让求x的最 ...

  2. L - Looking for Taste Gym - 101991L 二进制枚举/思维

    方法一:因为最多是10的六次方,所以可以直接枚举二进制上的每一位来得到最优结果. AC代码: #include<iostream> #include<stack> #inclu ...

  3. HDU - 6435 Problem J. CSGO 2018 Multi-University Training Contest 10 (二进制枚举+思维)

    题意:有N个主武器(MW)和M个副武器(SW),每个武器都有自己的S值,和K个附加属性xi.要选取一对主副武器搭配,搭配后获得的性能由该公式得出: 求获得最大的性能为多少. 分析:由于|xm - xs ...

  4. CF633(div.2)C. Powered Addition

    题目描述 http://codeforces.com/contest/1339/problem/C 给定一个长度为 \(n\) 的无序数组,你可以在第 \(x\) 秒进行一次下面的操作. 从数组选取任 ...

  5. POJ 2777 Count Color (线段树成段更新+二进制思维)

    题目链接:http://poj.org/problem?id=2777 题意是有L个单位长的画板,T种颜色,O个操作.画板初始化为颜色1.操作C讲l到r单位之间的颜色变为c,操作P查询l到r单位之间的 ...

  6. MindManager教程:高中数学函数思维导图怎么画

    说起函数,大家应该都不陌生吧,函数不论是在初中还是在高中都是需要重点学习的知识点,不仅仅是重点,更是作为难点曾出现在高考最后一道大题中.那今天我们就来做一个函数思维导图,来简单地了解一下关于函数的一些 ...

  7. Codeforces Round #633 (Div. 2)

    Codeforces Round #633(Div.2) \(A.Filling\ Diamonds\) 答案就是构成的六边形数量+1 //#pragma GCC optimize("O3& ...

  8. Educational Codeforces Round 15 (A - E)

    比赛链接:http://codeforces.com/contest/702 A. Maximum Increase A题求连续最长上升自序列. [暴力题] for一遍,前后比较就行了. #inclu ...

  9. HDU 3949 XOR [线性基|高斯消元]

    目录 题目链接 题解 代码 题目链接 HDU 3949 XOR 题解 hdu3949XOR 搞死消元找到一组线性无关组 消出对角矩阵后 对于k二进制拆分 对于每列只有有一个1的,显然可以用k的二进制数 ...

随机推荐

  1. 怎么入门python?不懂你别瞎尝试,看看大佬怎么说

    学习任何一门语言都是从入门,通过不间断练习达到熟练水准.虽然万事开头难,但好的开始是成功的一半,今天这篇文章就来谈谈怎么入门python? 在开始学习python之前,你需要确定好学习计划和方式 比如 ...

  2. SVG案例:动态去创建元素createElementNS

    案例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  3. Daily Scrum 12/16/2015

    Process: Dong&Minlong : 继续对Oxford Speech 接口进行调试,并且完成了相应工作的转接. Yandong@Zhaoyang: 完成了对一些Bug的修复工作,程 ...

  4. DNA sequence HDU - 1560(IDA*,迭代加深搜索)

    题目大意:有n个DNA序列,构造一个新的序列,使得这n个DNA序列都是它的子序列,然后输出最小长度. 题解:第一次接触IDA*算法,感觉~~好暴力!!思路:维护一个数组pos[i],表示第i个串该匹配 ...

  5. Crossing River POJ过河问题

    A group of N people wishes to go across a river with only one boat, which can at most carry two pers ...

  6. OpenAL试水

    参考了https://wysaid.org/976.html. 这个博客给了一个EGE+OpenAL的demo和源代码.一开始没注意,博主也没有给EGE相关信息.会找不到EGE相关头文件,建议如果要二 ...

  7. [Abp vNext 入坑分享] - 3.简单的用户模块功能开发

    一.简要说明 本篇文章开始进行业务模块的开发模拟,借助user模块来进行业务开发,主要是用户相关的基础操作.主要是先使用Users来体验整个开发的流程.主要是先把一个基础流程跑顺利,在这里我并不会过于 ...

  8. 图数据库的内部结构 (NEO4j)

    What “Graph First” Means for Native Graph Technology Neo4j是一个具有原生处理(native processing)功能和原生图存储(nativ ...

  9. Mysql基础练习--实例

    修改字段名:alter table 表名 change 旧字段名 新字段名 新数据类型;--- 主键 ------------------------------------------------- ...

  10. tensorflow1.0 dropout层

    """ Please note, this code is only for python 3+. If you are using python 2+, please ...