当前位置: 首页 > news >正文

免费做网站广告建设网站要多长时间

免费做网站广告,建设网站要多长时间,工商营业执照咨询电话,网站开店前的四项基本建设题意:给你一个长度为n((1≤n≤10^5)数组a[],你可以进行一个操作 使a[i]a[i]*2,问最少经过多少次这样的操作使的a[]不递减,a[i]>a[i-1]。 输入样例: 6 1 1 2 1 1 3 1 2 1 4 2 3 2 1 5 4 5 4 5 4 10 1 7 7 2 3 4 3 2 1 100 输出…

题意:给你一个长度为n((1≤n≤10^5)数组a[],你可以进行一个操作 使a[i]=a[i]*2,问最少经过多少次这样的操作使的a[]不递减,a[i]>=a[i-1]。

输入样例:

6

1

1

2

1 1

3

1 2 1

4

2 3 2 1

5

4 5 4 5 4

10

1 7 7 2 3 4 3 2 1 100

输出样例:  

1
1
4
7
4
28

思路: 要想使它非递减,肯定使遇到a[i-1]>a[i] 便让a[i-1]*2^x>=a[i] 最少乘x次使得a[i-1]>=a[i]

但是要考虑一个问题:遇到一个这样的就让a[i-1]*2^x 相应的也会影响后面的数乘多少个2 

如果都这样每一个暴力去乘去改变a[i-1]的值 N=1e5 数很大 若是最大可能 a[i]*2^N 会爆longlong

甚至会超时,这是就思考该怎么样去优化

采用前缀和的思想 用s[i]数组去计算 a[i]需要乘多少个2 不去实际改变a[i]的大小,而是用s[i]数组的方式记录下来每个数的达到符合要求的最小操作数

总的来说一共有两种情况

a[i]>=a[i-1]时

这时你要考虑 a[i]/2^t>=a[i-1] 可以用来抵消(前面的)乘2 从而使s[i]变小

s[i]=max(0,s[i-1]-t) s[i]最小就是0 就是不操作 前面的乘2改变的数 t都能抵消从而不改变值

a[i]<a[i-1]

例如:a[i-1]=2,a[i]=4,s[i-1]=3;

易得 t=1。a[i-1]*2*2*2=16,要使a[i]>=a[i-1]=16,那么a[i]需要乘 s[i-1]-t 个2,也就是2个2就可以满足a[i]>=16。

这时你要考虑 a[i-1]*2^t<=a[i] 此时这个a[i]一定要有相应的变化 最小变化就是乘2^t 如果前面也存在 a[j]<a[j-1]肯定也是乘2^x 这时相乘的2^y y肯定比t大了 要考虑全面 故s[i]=max(0,s[i-1]+t)

例如:a[i-1]=4,a[i]=2,s[i-1]=2;

易得 t=1。a[i-1]*2*2=16,要使a[i]>=a[i-1]=16,那么a[i]需要乘 s[i-1]+t 个2,也就是3个2就可以满足a[i]>=16。

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N],s[N];
int main()
{int t;cin>>t;while(t--){int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];memset(s,0,sizeof s);for(int i=2;i<=n;i++){ll b=a[i-1],c=a[i];ll tt=0;if(b<c){while(b*2<=c){tt++;b*=2;	}s[i]=max((ll)0,s[i-1]-tt);}else {while(c<b){tt++;c*=2;}s[i]=max((ll)0,s[i-1]+tt);}}ll sum=0;for(int i=1;i<=n;i++) sum+=s[i];cout<<sum<<endl;}return 0;
}

http://www.yayakq.cn/news/915520/

相关文章:

  • 好网站建设网站织梦网站搬家工具
  • php网站支付宝接口西安建设工程信息交易中心官网
  • 彩票网站建设dadi163wordpress搬家后图片不显示
  • 福州seo网站推广优化wordpress5.2自动保存
  • 怎样创建网站赚钱爱站之家
  • 网站建设服务案例网站怎么做来流量吗
  • 网站自己做服务器物流网络规划
  • 卓手机建网站上海注册公司流程及资料
  • 网站建设中网页模板本科自考需要考哪些科目
  • 地方门户网站制作禁止搜索引擎抓取wordpress的目录
  • 做网站找哪家最好2018年怎么做网站排名
  • 建筑网站模版海口模板建站系统
  • 陕西省咸阳市建设银行网站剑网三奇遇查询网站怎么做
  • 江诗丹顿手表网站php做网站商城系统怎么样
  • 公明做网站的公司自己做的网页怎么发布
  • 旅游网站建设目标分析wordpress实现圈子功能
  • 目前网络最好的挣钱平台深圳网站建设推广优化公司
  • 网站的管理有是asp网站源码+access+机械
  • 怎么在百度建设网站海外网站开发
  • 学做衣服网 缤纷网站阜新建设网站
  • 自己怎么做网站链接wordpress 自动发邮件
  • 深圳网站和app建设方案天津网络公司排名
  • 深圳品牌网站建设公司佛山专业网站建设报价
  • 苏州网站建设名字青岛房产网签备案查询
  • 网站建设软件设施seo关键词优化推广价格
  • 在pc端网站基础上做移动端建网站是怎么造成的
  • 怎么查网站备案域名西安市注册公司步骤
  • 上海网站建设设计公司用手机制作游戏的软件
  • 有服务器了怎么做网站中国建设银行公积金网缴网站
  • 企业商城网站建设价格长春市住房和城乡建设局网站