hdu5358 推公式+在一个区间内的尺取+枚举法
尺取+枚举,推出公式以后就是一个枚举加尺取
但是这题的尺取不是对一个值尺取,而是在一个区间内,所以固定左边界,尺取右边界即可
#include<bits/stdc++.h>
#define maxn 100005
#define ll long long
using namespace std; int t,n,m,k,x,y,z,l,tot;
ll cnt,sum[maxn];
int a[maxn];
ll solve(ll L,ll R){//求区间[l,R)内i+j的和
ll ans=;
int l=,r=;
for(int i=;i<=n;i++){
if(l<i) l=i;
if(r<i-) r=i-;
while(l<=n && sum[l]-sum[i-]<L) l++;//sum(i,l)必须>=L;
while(r+<=n && sum[r+]-sum[i-]<R) r++;//sum(i,r)必须<R
if(sum[r]-sum[i-]<L) continue;
ans+=(ll)(r-l+)*i + (ll)(l+r)*(r-l+)/;
}
return ans;
} int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
sum[]=;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
sum[i]=sum[i-]+a[i];
}
ll ans=;
for(int k=;k<=;k++)
ans+=(ll)k*(solve(pow(,k-),pow(,k)));
ans+=solve(,);
printf("%lld\n",ans);
}
}
hdu5358 推公式+在一个区间内的尺取+枚举法的更多相关文章
- 计蒜客第五场 UCloud 的安全秘钥(中等) (尺取游标法
每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作.作为一家安全可信的云计算平台,秘钥的安全性至关重要.因此,UCloud 每年会对用户的秘钥进行安全性评估,具体的评估方 ...
- HDU 6119 小小粉丝度度熊 (区间去重)【尺取】
<题目链接> 度度熊决定每天都在星星小姐的贴吧里面签到. 但是度度熊是一个非常健忘的孩子,总有那么几天,度度熊忘记签到,于是就断掉了他的连续签到. 不过度度熊并不是非常悲伤,因为他有m张补 ...
- HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)
在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平 ...
- ZOJ3629 Treasure Hunt IV(找规律,推公式)
Treasure Hunt IV Time Limit: 2 Seconds Memory Limit: 65536 KB Alice is exploring the wonderland ...
- hdu 4638 树状数组 区间内连续区间的个数(尽可能长)
Group Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 2017乌鲁木齐区域赛K(容斥原理【求指定区间内与n互素的数的个数】)
#include<bits/stdc++.h>using namespace std;const long long mod = 998244353;typedef const long ...
- BZOJ4653(区间离散化+线段树+决策单调尺取)
写得很好的题解 一眼过去很像是:排序,然后从前向后扫,有这个区间时插到树里,过去以后再删除.然后事实也是这样做的…… 具体起来: 1.如果考虑暴力的话,一种想法是枚举左端和右端要选取的区间(如果我们按 ...
- 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) P-Fear Factoring 区间内数的所有因数的和(除法分块)
题意就是标题. 思路: 对于每个数 a 算出 1~a 的所有因数和sum(a),输出sum(b)-sum(a-1). 关键在于如何求出 sum. 首先发现因数∈ 1 ≤ i ≤ n ,每个因数在区间[ ...
- hdu3437 划分树 区间内小于第K大的值得和
Minimum Sum Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
随机推荐
- Kafka 0.10问题点滴
15.如何消费内部topic: __consumer_offsets 主要是要让它来格式化:GroupMetadataManager.OffsetsMessageFormatter 最后用看了它的源码 ...
- Codeforces 264 B. Good Sequences
B. Good Sequences time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Multi-Anti-Nim游戏结论及证明
一.定义 Anti-Nim 游戏: 取走最后一个石子的玩家输 Multi-Nim游戏: 每次取完后可以将一堆石子分为多堆,不能存在空堆 Multi-Anti-Nim游戏: 每次取完后可以将一堆石子分为 ...
- Nginx 学习笔记(一)如何配置一个安全的HTTPS网站服务器
一.系统环境 1.系统:Ubuntu 16.04.2 LTS 2.WEB服务器:Openresty11.2.5 二.开始配置 1.获取certbot客户端 wget https://dl.eff.or ...
- DOM-Element对象
一. 整体介绍 这里介绍DOM对象中Element对象. 那么何为Element对象呢?Element对象就是HTML元素,Element对象包括:元素节点.文本节点.属性节点. 下面利用一张图来总 ...
- 在Eclipse中利用maven整合搭建ssm框架
首先说明用到的框架: spring + springMVC + mybatis 构建工具:maven 开发工具:eclipse 开发环境:win10 java版本:jdk1.8 ...
- python(nmap模块、多线程模块)
http://xael.org/pages/python-nmap-en.html nmap模块 http://www.tutorialspoint.com/python/python_m ...
- dense prediction
Dense prediction fully convolutional network for sementic segmentation 先用feature extractor 提特征,然后再使 ...
- Nginx proxy开启cache缓存
proxy_temp_path /tmp/proxy_temp_dir; // 设置缓存位置 proxy_cache_path /tmp/proxy_cache_dir levels = : keys ...
- Linux - 系统基础操作
wall # 给其它用户发消息 whereis ls # 查找命令的目录 which # 查看当前要执行的命令所在的路径 clear # 清空整个屏幕 reset # 重新初始化屏幕 cal # 显示 ...