首先环可以变成链来处理,对于l>r的情况就是修改区间[1,r],[l,mx]
然后不难想到整体二分,二分答案k,然后算1~k场流星雨对国家的贡献
然后判定将国家划分变成子问题解决,没什么难的
终于不是tle,poi良心了一把

 type way=record
po,next:longint;
end;
que=record
p,n:longint;
end;
an=record
l,r,v:longint;
end;
var a:array[..] of an;
qq,q:array[..] of que;
e:array[..] of way;
c:array[..] of int64;
p,ans,h:array[..] of longint;
v:array[..] of boolean;
tot,t,j,n,m,x,i:longint;
s:int64; function lowbit(x:longint):longint;
begin
exit(x and (-x));
end; procedure add(x,y:longint);
begin
e[i].po:=i;
e[i].next:=p[x];
p[x]:=i;
end; procedure ins(x:longint;w:int64);
begin
while x<=n do
begin
if not v[x] then //清理标记
begin
inc(tot);
h[tot]:=x;
v[x]:=true;
end;
c[x]:=c[x]+w;
x:=x+lowbit(x);
end;
end; function ask(x:longint):int64;
begin
ask:=;
while x> do
begin
ask:=ask+c[x];
x:=x-lowbit(x);
end;
end; procedure work(f,t,l,r:longint);
var mid,l1,l2:longint;
begin
if f>t then exit;
if l>r then exit;
mid:=(l+r) shr ;
tot:=;
for i:=l to mid do
if a[i].l<=a[i].r then
begin
ins(a[i].l,a[i].v);
ins(a[i].r+,-a[i].v);
end
else begin
ins(,a[i].v);
ins(a[i].r+,-a[i].v);
ins(a[i].l,a[i].v);
end; l1:=f;
l2:=t;
for i:=f to t do
begin
j:=p[q[i].p];
s:=;
while j<> do
begin
s:=s+ask(e[j].po);
if s>=q[i].n then
begin
qq[l1]:=q[i];
inc(l1);
ans[q[i].p]:=mid;
break;
end;
j:=e[j].next;
end;
if s<q[i].n then
begin
q[i].n:=q[i].n-s; //对于还不够的国家,直接把这部分贡献减去即可,下次直接处理mid之后的流星雨的贡献
qq[l2]:=q[i];
dec(l2);
end;
end;
for i:= to tot do
begin
c[h[i]]:=;
v[h[i]]:=false;
end;
for i:=f to t do
q[i]:=qq[i];
work(f,l1-,l,mid-);
work(l2+,t,mid+,r);
end; begin
readln(m,n);
for i:= to n do
begin
read(x);
add(x,i);
end;
for i:= to m do
begin
read(q[i].n);
q[i].p:=i;
end;
readln(t);
for i:= to t do
readln(a[i].l,a[i].r,a[i].v);
work(,m,,t);
for i:= to m do
if ans[i]= then writeln('NIE')
else writeln(ans[i]);
end.

bzoj2527的更多相关文章

  1. 【BZOJ2527】MET-Meteors(整体二分)

    [BZOJ2527]MET-Meteors(整体二分) 题面 BZOJ权限题,良心洛谷链接 题解 其实我也不会做 看了zsy博客才会做... 这题如果直接爆算做显然行不通 如果只有单次询问,我们就可以 ...

  2. BZOJ2527 [Poi2011]Meteors 整体二分 树状数组

    原文链接http://www.cnblogs.com/zhouzhendong/p/8686460.html 题目传送门 - BZOJ2527 题意 有$n$个国家. 太空里有$m$个太空站排成一个圆 ...

  3. 【BZOJ2527】[Poi2011]Meteors 整体二分

    [BZOJ2527][Poi2011]Meteors Description Byteotian Interstellar Union (BIU) has recently discovered a ...

  4. 【bzoj2527】[Poi2011]Meteors(树状数组(单点查询,区间修改)+整体二分)

    [bzoj2527][Poi2011]Meteors Description Byteotian Interstellar Union (BIU) has recently discovered a ...

  5. [bzoj2527][Poi2011]Meteors_整体二分_树状数组

    Meteors bzoj-2527 Poi-2011 题目大意:题目链接. 注释:略. 想法: 首先答案可以离线,且具有单调性. 这里的单调性就是随着时间的推移,每个国家收集的陨石数增加. 不难想到整 ...

  6. BZOJ2527: [Poi2011]Meteors

    补一发题解.. 整体二分这个东西,一开始感觉复杂度不是很靠谱的样子 问了po姐姐,说套主定理硬干.. #include<bits/stdc++.h> #define ll long lon ...

  7. 【BZOJ-2527】Meteors 整体二分 + 树状数组

    2527: [Poi2011]Meteors Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 831  Solved: 306[Submit][Stat ...

  8. BZOJ2527[Poi2011]Meteors——整体二分+树状数组

    题目描述 Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The ...

  9. bzoj千题计划149:bzoj2527: [Poi2011]Meteors

    http://www.lydsy.com/JudgeOnline/problem.php?id=2527 整体二分 区间加,单点查,树状数组维护差分序列 注意 累积可能会爆long long,所以一满 ...

随机推荐

  1. 【NOI2001】炮兵阵地

    [题目描述] 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形 ...

  2. 九度OJ 1104 整除问题

    题目地址:http://ac.jobdu.com/problem.php?pid=1104 题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2 ...

  3. php常用单词语法

    header("Content-type:text/html;charset=utf-8"); 加入数组array_push($ratings_store_cop,$value); ...

  4. HTML5:基本使用

    单行文本输入框 type为text表示input元素为一个单行文本框,是input元素的默认表现形式.单行文本输入框支持下面的属性设置. A:设定元素大小 maxlength属性设定用户能够输入的字符 ...

  5. ACE 6.2.0 AIX 编译

    注:ace只能使用gnu的make 一.IBM  AIX版本 $unameAIX$oslevel6.1.0.0$ ACE+TAO+CIAO-6.2.0.tar 二.GNU make版本:make-3. ...

  6. Intellij IDEA 14的注册码

    IntelliJ IDEA 14 注册码 IntelliJ IDEA 14 下载地址: IntelliJ IDEA 14 下载 分享几个license: (1) key:IDEA value:6115 ...

  7. 微信支付JS API使用心得

    微信的接口真的很坑爹,只返回成功或失败,从来不会告诉你为什么失败.这个微信支付的js接口也是调了一个下午才成功,期间踩了不少坑,在这里总结一下,而且把支付接口封装成了一个js文件,这样以后调用就很方便 ...

  8. 解决lucene 重复索引的问题

    在使用Lucene过程中,会发现当我们为添加新的Document时,会产生重复现象(两次添加同一个Document),毕竟Lucene中没有像数据库中一样,有键可以区分.不过我们可以通过为Docume ...

  9. eclipse:java.lang.OutOfMemoryError: PermGen space 最简单的解决方式

    我使用的工具是STS, Eclipse同理: 打开如下界面: 左则选择项目启动使用的Tomcat-->在右侧面板Tab项中选择" Arguments":在VM argumen ...

  10. js中的字典

    最近项目JS中需要建一个特殊的颜色库,需要用到类似C#中的dictionary的概念 然后一查发现JS没有dictionary 而是Array 初始化Array colorDic = new Arra ...