Cutting Bamboos 主席树+二分+前缀和
二分第x次砍的位置,然后用线段树查询小于这个位置的数的个数和值的和。然后判断即可
注意!!!主席树是通过动态开点实现的,本身已经不用再从1开始了,而本题开的范围也应该是0,100000 而不是1,100000(害得我找了很久的错误)
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<math.h>
#define LL long long
using namespace std;
const int maxx = ;
const double eps = 1e-;
struct node{
LL l,r,cnt;
LL w;
}tree[maxx<<];
LL root[maxx];
LL a[maxx];
LL pre[maxx];
LL cnt;
LL num;
LL sumlength;
void inserts(LL l,LL r,LL pre,LL &now,LL pos){
now=++cnt;
tree[now]=tree[pre];
tree[now].cnt++;
tree[now].w=tree[now].w+pos;
if (l==r){
return;
}
LL mid=(l+r)>>;
if (pos<=mid){
inserts(l,mid,tree[pre].l,tree[now].l,pos);
}else {
inserts(mid+,r,tree[pre].r,tree[now].r,pos);
}
}
void query(LL L,LL R,LL l,LL r,LL pos){
// if (l>pos)return;
if (l==r){
num+=(tree[R].cnt-tree[L].cnt);
sumlength+=(tree[R].w-tree[L].w);
return ;
}
LL mid=(l+r)>>;
if (pos<=mid){
query(tree[L].l,tree[R].l,l,mid,pos);
}else{
num+=(tree[tree[R].l].cnt-tree[tree[L].l].cnt);
sumlength+=(tree[tree[R].l].w-tree[tree[L].l].w);
query(tree[L].r,tree[R].r,mid+,r,pos);
}
}
int main(){
LL n,q;
while(~scanf("%lld%lld",&n,&q)){
pre[]=;
cnt=;
for (int i=;i<=n;i++){
scanf("%lld",&a[i]);
pre[i]=pre[i-]+a[i];
inserts(,,root[i-],root[i],a[i]);
}
LL ll,rr;
LL x,y;
while(q--){
scanf("%lld%lld%lld%lld",&ll,&rr,&x,&y);
double l=,r=;
double ans=;
while(fabs(r-l)>eps){
double mid=(l+r)/;
num=;
sumlength=;
LL ss=floor(mid);
query(root[ll-],root[rr],,,ss);
num=(rr-ll+)-num;
double s=num*mid+sumlength;
double step=1.0*(pre[rr]-pre[ll-])/y;
if (s-step*(y-x)>eps){
r=mid;
}else{
l=mid;
}
}
printf("%.10f\n",l);
}
}
return ;
}
Cutting Bamboos 主席树+二分+前缀和的更多相关文章
- 2019牛客多校第⑨场H Cutting Bamboos(主席树+二分)
原题:https://ac.nowcoder.com/acm/contest/889/H 题意: 给你一些竹子,q个询问,问你从第l到第r个竹子,如果你要用y次砍完它,并且每次砍下来的长度是相同的,问 ...
- BZOJ1926 [Sdoi2010]粟粟的书架 【主席树 + 二分 + 前缀和】
题目 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co rmen 的文章.粟粟家中有一个 R行C 列的巨型书架,书架的每一个位置都 ...
- BZOJ.1926.[SDOI2010]粟粟的书架(前缀和 主席树 二分)
题目链接 题意: 在给定矩形区域内找出最少的数,满足和>=k.输出数的个数.两种数据范围. 0~50 注意到(真没注意到...)P[i,j]<=1000,我们可以利用前缀和预处理. num ...
- 【BZOJ1926】粟粟的书架(主席树,前缀和)
[BZOJ1926]粟粟的书架(主席树,前缀和) 题面 Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co ...
- 2018湘潭邀请赛C题(主席树+二分)
题目地址:https://www.icpc.camp/contests/6CP5W4knRaIRgU 比赛的时候知道这题是用主席树+二分,可是当时没有学主席树,就连有模板都不敢套,因为代码实在是太长了 ...
- 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)
Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...
- HDU - 4866 主席树 二分
题意:在x轴\([1,X]\)内的上空分布有n个占据空间\([L_i,R_i]\),高度\(D_i\)的线段,射中线段的得分为其高度,每次询问从x轴的\(x\)往上空射的最近k个线段的总得分,具体得分 ...
- POJ 6621: K-th Closest Distance(主席树 + 二分)
K-th Closest Distance Time Limit: 20000/15000 MS (Java/Others) Memory Limit: 524288/524288 K (Jav ...
- HDU6621 K-th Closest Distance HDU2019多校训练第四场 1008(主席树+二分)
HDU6621 K-th Closest Distance HDU2019多校训练第四场 1008(主席树+二分) 传送门:http://acm.hdu.edu.cn/showproblem.php? ...
随机推荐
- dede list调用 内容模型 附件
当我们在list列表页调用内容模型的附件时,会调用出来一个表,数据被包含在表格里面 下面修改这个表格 找到 templets>system>channel_addon.htm文件 < ...
- python 随机模块random
- xmlns详解(转载)
我们经常会在网页中碰到形如<html xmlns=”http://www.w3.org/2001/xhtml”>这样的代码, 或在是android 编码中的main.xml中看到形如< ...
- C 语言中 #pragma 的使用
在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情 ...
- LintCode刷题笔记-- BackpackIII
标签:动态规划 问题描述: Given n items with size Ai and value Vi, and a backpack with size m. What's the maximu ...
- OpenLayers添加地图标记
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...
- 【Mobius绮丽的辗转】莫比乌斯反演
Problem 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b≤5 ...
- vue常用操作及学习笔记(路由跳转及路由传参篇)
路由跳转 - 超链接方式跳转 html: <div id="app"> <h1>Hello App!</h1> <p> <!- ...
- VisualTreeHelper使用——使用BFS实现高效率的视觉对象搜索
BFS,即广度优先搜索,是一种典型的图论算法.BFS算法与DFS(深度优先搜索)算法相对应,都是寻找图论中寻路的常用算法,两者的实现各有优点. 其中DFS算法常用递归实现,也就是常见的一条路找到黑再找 ...
- jquery 浏览器缓存网页
头部:<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate&q ...