博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-5358 First One(尺取法)
阅读量:5213 次
发布时间:2019-06-14

本文共 1778 字,大约阅读时间需要 5 分钟。

题目链接:

Time Limit: 4000/2000 MS (Java/Others)    

Memory Limit: 131072/131072 K (Java/Others)

Problem Description
 
soda has an integer array 
a1,a2,,an. Let S(i,j) be the sum of ai,ai+1,,aj. Now soda wants to know the value below:
i=1nj=in(log2S(i,j)+1)×(i+j)
Note: In this problem, you can consider log20 as 0.
 

 

Input
 
There are multiple test cases. The first line of input contains an integer 
T, indicating the number of test cases. For each test case:
The first line contains an integer n (1n105), the number of integers in the array.
The next line contains n integers a1,a2,,an (0ai105).
 

 

Output
 
For each test case, output the value.
 

 

Sample Input
 
1
2
1 1
 

 

Sample Output
 
12
 
题意:
 
求这个sum啦啦啦;
 
思路:
 
还是得用尺取法,我二分找两个端点,tle了,看来常数卡的好紧啊啊啊;
 
 
AC代码:
 
/*    5358    1638MS    3120K    1119 B    G++    2014300227*/#include 
using namespace std;const int N=1e5+4;typedef long long ll;int n;ll a[N],sum[N];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%lld",&a[i]); } sum[0]=0; a[n+1]=0; for(int i=1;i<=n+1;i++) { sum[i]=sum[i-1]+a[i]; } ll ans=0,num=0; ll L=0,R=1,len; for(int i=0;i<=33;i++) { num=0; int l=1,r=1; for(int j=1;j<=n;j++)//左端点为j,l和r为右端点可取的区间;并不是l表示左端点,r表示右端点;所以复杂度才降了下来; { l=max(j,l); while(l<=n&&sum[l]-sum[j-1]
=L)r++; len=r-l; num+=len*(ll)j+len*(l+r-1)/2; } L=R+1; R=2*L-1; ans+=num*(ll)(i+1); } printf("%lld\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/zhangchengc919/p/5393720.html

你可能感兴趣的文章
day18
查看>>
java技术汇总
查看>>
Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
查看>>
git bash 的命令
查看>>
Java并发编程笔记之LinkedBlockingQueue源码探究
查看>>
转:基于用户投票的排名算法系列
查看>>
多线程简单实用
查看>>
WSDL 详解
查看>>
linux tmux 工具使用 tmux.conf 文件
查看>>
mvn打包源码的方法:maven-source-plugin
查看>>
Nginx keepalived实现高可用负载均衡详细配置步骤
查看>>
ES6:export default 和 export 区别
查看>>
01爬取豆瓣网电影数据进行numpy的练习
查看>>
WSDL测试webservice接口记录
查看>>
多线程分批处理集合中的元素【我】
查看>>
独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了...
查看>>
react + dva + ant架构后台管理系统(一)
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
我的中兴五年:加班为何成了底层员工心中永远的痛
查看>>
git学习
查看>>