http://www.lydsy.com/JudgeOnline/problem.php?id=2527

思路:整体二分

#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#define ll long long
#define inf 1000000010
int n,m,a[],first[],next[],tot;
int tol[],tor[],ans[],id[],K;
ll cur[],tmp[],h[],go[];
struct node{
int id,l,r,w;
}q[];
int read(){
int t=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (''<=ch&&ch<=''){t=t*+ch-'';ch=getchar();}
return t*f;
}
ll sum(int x){
ll res=;
while (x){
res+=h[x];
x-=(x)&(-x);
}
return res;
}
void add(int x,ll v){
for (int i=x;i<=m;i+=(i)&(-i))
h[i]+=v;
}
void add(int x,int y,ll v){
add(x,v);add(y+,-v);
}
void solve(int l,int r,int x,int y){
if (x>y) return;
if (l==r){
for (int i=x;i<=y;i++)
ans[id[i]]=l;
return;
}
int lnum=,rnum=;
int mid=(l+r)>>;
for (int i=l;i<=mid;i++)
if (q[i].l<=q[i].r) add(q[i].l,q[i].r,q[i].w);
else add(q[i].l,m,q[i].w),add(,q[i].r,q[i].w);
for (int i=x;i<=y;i++){
tmp[id[i]]=;
for (int j=first[id[i]];j;j=next[j]){
int pur=go[j];
tmp[id[i]]+=sum(pur);
if (tmp[id[i]]+cur[id[i]]>=a[id[i]]) break;
}
if (tmp[id[i]]+cur[id[i]]>=a[id[i]]) tol[++lnum]=id[i];
else tor[++rnum]=id[i],cur[id[i]]+=tmp[id[i]];
}
for (int i=l;i<=mid;i++)
if (q[i].l<=q[i].r) add(q[i].l,q[i].r,-q[i].w);
else add(q[i].l,m,-q[i].w),add(,q[i].r,-q[i].w);
for (int i=;i<lnum;i++)
id[x+i]=tol[i+];
for (int i=;i<rnum;i++)
id[x+lnum+i]=tor[i+];
solve(l,mid,x,x+lnum-);
solve(mid+,r,x+lnum,y);
}
int main(){
n=read();m=read();
for (int i=;i<=m;i++){
int x=read();
tot++;
next[tot]=first[x];
first[x]=tot;
go[tot]=i;
}
for (int i=;i<=n;i++)
a[i]=read();
K=read();
for (int i=;i<=K;i++){
q[i].l=read();q[i].r=read();q[i].w=read();
q[i].id=i;
}
K++;
q[K].l=;q[K].r=m;q[K].w=inf;
q[K].id=K;
for (int i=;i<=n;i++)
id[i]=i;
solve(,K,,n);
for (int i=;i<=n;i++){
if (ans[i]!=K) printf("%d\n",ans[i]);
else puts("NIE");
}
return ;
}

BZOJ 2527 Meteors的更多相关文章

  1. BZOJ 2527 Meteors | 整体二分

    BZOJ 2527 Meteors 题意 一个圆环上有m个位置,编号为1~m,分别属于n个国家. 有k个时刻,每个时刻都会给圆环上的一个区间中每个位置的值加上一个数. 每个国家有一个目标,问对于每个国 ...

  2. bzoj 2527 Meteors - 整体二分 - 树状数组

    Description Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby gala ...

  3. BZOJ 2527 [Poi2011]Meteors(整体二分)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2527 [题目大意] 有N个成员国.现在它发现了一颗新的星球, 这颗星球的轨道被分为M份 ...

  4. BZOJ 2527 [Poi2011]Meteors:整体二分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2527 题意: 有n个国家和m个空间站,每个空间站都属于一个国家,一个国家可以有多个空间站, ...

  5. bzoj 2527: [Poi2011]Meteors 整体二分

    给每个国家建一个链表,这样分治过程中的复杂度就和序列长度线形相关了,无脑套整体二分就可以. (最坑的地方是如果所有位置都是一个国家,那么它的样本个数会爆longlong!!被这个坑了一次,大于p[i] ...

  6. 【bzoj 2527】[Poi2011]Meteors

    Description Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby gala ...

  7. bzoj 2527: [Poi2011]Meteors

    昨天写了一晚,越写复杂度越感觉不对,早上一想果然是假的. (这里n,m,k我就不区分了) 首先一个城市的询问可以很容易的二分 check用树状数组维护区间(区间修改,单点查询的那种) 一次是\(O(n ...

  8. BZOJ 2527 [Poi2011]Meteors (整体二分+树状数组)

    整体二分板题,没啥好讲的-注意是个环-还有所有贡献会爆longlong,那么只要在加之前判断一下有没有达到需要的值就行了- CODE #include <set> #include < ...

  9. BZOJ 2527 & 整体二分

    Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨 ...

随机推荐

  1. zabbix discovery

    preface(见面礼): 仅扫tcp端口: netstat -tnlp|egrep -i "$1"

  2. Struts 2零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...

  3. zeptoJS:如何像jQuery一样,让滚动变得优雅?

    利用jQuery的animate() 方法,我们很容易实现滚动条的平滑滚动效果: $(function() { $('#top').click( function (e) { $('html, bod ...

  4. 轻量级mvvm Web开发框架 postby:http://zhutty.cnblogs.com

    今天特别郁闷,怎么说呢,之前一直就用angular,然后这两天用的是avalon这东西,反正,一开始没时间去玩它,第一个任务就是封装个jq插件,实现一个小功能.反正呢,就是越写越郁闷.用过angula ...

  5. Github 开源编辑器 ATOM 已开放下载

    Update:2014-09-08 Atom 于5月6日正式开放下载(遗憾的是只有 MAC 版本),并且在 MIT 协义下开源,从界面可以看出,这款软件很像 Sublime Text,不过由于她的开源 ...

  6. 【Spring MVC系列】--(5)理解AOP

    1.java反射 实用:JAVA反射机制及应用例子 http://407827531.iteye.com/blog/1173930 系统:java反射原理 http://china-jianchen. ...

  7. 2013国内IT行业薪资对照表【技术岗】

    (本文为转载,具体出处不详) 说薪水,是所有人最关心的问题.我只 想说如果想在薪水上面满意,在中国,没有哪里比垄断国企好.电力.烟草.通信才是应该努力的方向.但是像我们这种搞研发的进IT行业似乎是注定 ...

  8. [SVG] Simple introduce for SVG

    Just like create html page, you can create a svg tag by: <?xml version="1.0" encoding=& ...

  9. sgu Flow construction

    Flow construction 题目: 给出N个节点M条水管,要求在满足上下界的情况下.满足起点最小的流量. 算法: 这是最小流????不知道.仅仅知道用求解上下界最大流的方法就过了. 做这题收获 ...

  10. POJ 2455Secret Milking Machine(二分+网络流之最大流)

    题目地址:POJ2455 手残真浪费时间啊..又拖到了今天才找出了错误..每晚两道题不知不觉又变回了每晚一道题...sad.. 第一次在isap中忘记调用bfs,第二次则是遍历的时候竟然是从1開始遍历 ...