bzoj2527
首先环可以变成链来处理,对于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的更多相关文章
- 【BZOJ2527】MET-Meteors(整体二分)
[BZOJ2527]MET-Meteors(整体二分) 题面 BZOJ权限题,良心洛谷链接 题解 其实我也不会做 看了zsy博客才会做... 这题如果直接爆算做显然行不通 如果只有单次询问,我们就可以 ...
- BZOJ2527 [Poi2011]Meteors 整体二分 树状数组
原文链接http://www.cnblogs.com/zhouzhendong/p/8686460.html 题目传送门 - BZOJ2527 题意 有$n$个国家. 太空里有$m$个太空站排成一个圆 ...
- 【BZOJ2527】[Poi2011]Meteors 整体二分
[BZOJ2527][Poi2011]Meteors Description Byteotian Interstellar Union (BIU) has recently discovered a ...
- 【bzoj2527】[Poi2011]Meteors(树状数组(单点查询,区间修改)+整体二分)
[bzoj2527][Poi2011]Meteors Description Byteotian Interstellar Union (BIU) has recently discovered a ...
- [bzoj2527][Poi2011]Meteors_整体二分_树状数组
Meteors bzoj-2527 Poi-2011 题目大意:题目链接. 注释:略. 想法: 首先答案可以离线,且具有单调性. 这里的单调性就是随着时间的推移,每个国家收集的陨石数增加. 不难想到整 ...
- BZOJ2527: [Poi2011]Meteors
补一发题解.. 整体二分这个东西,一开始感觉复杂度不是很靠谱的样子 问了po姐姐,说套主定理硬干.. #include<bits/stdc++.h> #define ll long lon ...
- 【BZOJ-2527】Meteors 整体二分 + 树状数组
2527: [Poi2011]Meteors Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 831 Solved: 306[Submit][Stat ...
- BZOJ2527[Poi2011]Meteors——整体二分+树状数组
题目描述 Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The ...
- bzoj千题计划149:bzoj2527: [Poi2011]Meteors
http://www.lydsy.com/JudgeOnline/problem.php?id=2527 整体二分 区间加,单点查,树状数组维护差分序列 注意 累积可能会爆long long,所以一满 ...
随机推荐
- (转)QRCODE二维码介绍及常用控件推荐
什么是QR Code码? QR Code码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大.可靠性高.可表示汉字及图象多种文字信息.保密防 ...
- eclipse下的tomcat内存设置大小
在eclipse中设置,居然可以了, 设置步骤如下: 1.点击eclipse上的debug图标旁边的下拉箭头 2.然后选择Run Configurations, 3.系统弹出设置tomcat配置页面, ...
- WPF 关于XDocument(xml) 的部分操作记录
(1)删除xml文件中的一个结点的方法,有如下两种方式(只有存在数据绑定的情况下才会有第二种情况,否则一般是第一种情况): private void DeletePacsNode() { //从xml ...
- springmvc学习(二)——使用RequestMapper请求映射
本次内容是@RequestMapping,后面会有实例代码 Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求在控制器的类定义及方法定义处都可标注@ ...
- [GeekBand] C++学习笔记(1)——以复数类为例
本篇笔记以复数类(不含指针的类)为例进行面向对象的学习 ========================================================= 复数类的声明: class ...
- 07_例子讲解:rlCoachKin + rlCoachMdl
RL提供了2个相当简单的基于socket的虚拟化机器人,是socket服务端. rlCoachKin是用于D-H运动链(在rlkin\*xml中定义的). rlCoachMdl相当于任意几何的工具链. ...
- 九度OJ 1385 重建二叉树
题目地址:http://ac.jobdu.com/problem.php?pid=1385 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都 ...
- 简单改造 starling 中的 AssetManager 让其更适合 批次加载纹理
API文档参考:http://doc.starling-framework.org/core/starling/utils/AssetManager.html 项目想以不改动starling的情况下对 ...
- PL/SQL Developer不安装客户端连接远程oracle数据库(转)
1.下载敏捷客户端InstantClient(40M左右,选择适合自己的下载,我的是instantclient-basic-win32-11.2.0.1.0.zip ):http://www.orac ...
- 实现一个div在浏览器水平居中
第一种方法: div { margin: 0 auto; width: 960px; } 第二种方法(兼容IE): body { text-align: center; } div { margin: ...