首先环可以变成链来处理,对于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. GZIP 头解析

    在用HttpWebRequest对象时,一般我们都没有开启gzip压缩,如果服务端返回的数据比较大,这是我们需要开启gzip压缩,怎么开启呢? 1.给HttpWebRequest对象,添加如下Head ...

  2. textarea限定字数提示效果

    最近工作中要实现的一个效果是:在textarea中输入字符会提示剩余多少字符可输入.于是马不停蹄的开始查阅资料. HTML代码: <table> <colgroup> < ...

  3. Asp.net 导入Excel数据

    前台代码: <body> <form id="form1" runat="server"> <div> <asp:Fi ...

  4. 关于修改动态库DLL的问题

    最近在做一个小软件,需要做到新建.修改动态链接库(DLL)的功能.新建很简单,但是在修改的时候我突然发现问题来了.首先软件会在启动的时候将所有协议加载出来,然后做展示.此时你可以添加或减少动态库中的属 ...

  5. 微信公众号-5秒内不回复测试并处理方案,顺便复习php 时间执行

    在index.php中 file_put_contents('has_request.txt','请求时间:'.date('YmdHis')."\n",FILE_APPEND); ...

  6. How to open .ccproj in VS2010?

    Q: How to open .ccproj projects types in VS2010, ccproj file type is a Cloud project i suppose. Plea ...

  7. C语言自带的快速排序(qsort)函数使用方法

    感觉打快排太慢了,找到了c语言自带的函数.这函数用起来没c++的方便,不过也够了. 函数名称:qsort,在头文件:<stdlib.h>中 不多说,上代码: #include <st ...

  8. mvc razor页面的邮箱校验

    由于@符号是razor中的关键字,而邮箱校验的正则表达式中需要使用@符号,所以在cshtml页面的代码中直接写js代码进行邮箱校验会报错. 解决方案: 将邮箱校验写在js文件中,在cshtml文件中引 ...

  9. 增加字体和颜色样式-------CSS

    通过使用CSS,控制文本的字体,风格和颜色 1.基本操作: body{ font-family: Verdana, Geneva, Tahoma, sans-serif } body{ font-si ...

  10. makefile懒人版(单个文件编译)

    .PHONY:clean all CC=gcc CFLAGS=-Wall -g ###replace your bin BIN=1 2 3 4 all:$(BIN) %.o:%.c $(CC) $(C ...