P3527 [POI2011]MET-Meteors

链接

  整体二分!

代码

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL; inline int read() {
int x=,f=;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-;
for (;isdigit(ch);ch=getchar())x=x*+ch-'';return x*f;
} const int N = ;
int Ans[N],A[N],B1[N],B2[N],T[N];
vector <int> v[N];
struct OPT{
int l,r,val;
}OP[N]; struct BIT{
int n;
LL sum[N];
inline void update(int l,int r,int v) {
for (int p=l; p<=n; p+=p&(-p)) sum[p] += v;
for (int p=r+; p<=n; p+=p&(-p)) sum[p] -= v;
if (l > r) for (int p=; p<=n; p+=p&(-p)) sum[p] += v;
}
inline LL query(int p) { // LL
LL ans = ;
for (; p; p-=p&(-p)) ans += sum[p];
return ans;
}
inline void clear(int l,int r) {
for (int p=l; p<=n&&sum[p]; p+=p&(-p)) sum[p] = ;
for (int p=r+; p<=n&&sum[p]; p+=p&(-p)) sum[p] = ;
if (l > r) for (int p=; p<=n&&sum[p]; p+=p&(-p)) sum[p] = ;
}
}bit; void solve(int Head,int Tail,int L,int R) { // 询问的队列(即国家)[Head,Tail],答案[L,R]次之间
if (Head > Tail) return;
if (L == R) {
for (int i=Head; i<=Tail; ++i) Ans[A[i]] = L;
return;
}
int M = (L + R) / ,p1 = ,p2 = ;
for (int i=L; i<=M; ++i)
bit.update(OP[i].l,OP[i].r,OP[i].val);
for (int i=Head; i<=Tail; ++i) {
int now = A[i]; // 国家
LL sum = ;
for (int j=,lim=v[now].size(); j<lim; ++j)
if ((sum += bit.query(v[now][j])) >= T[now]) break;;
if (sum >= T[now]) B1[++p1] = A[i];
else T[now] -= sum,B2[++p2] = A[i];
}
for (int i=L; i<=M; ++i) bit.clear(OP[i].l,OP[i].r);
for (int i=; i<=p1; ++i) A[Head+i-] = B1[i];
for (int i=; i<=p2; ++i) A[Head+p1+i-] = B2[i];
solve(Head,Head+p1-,L,M);
solve(Head+p1,Tail,M+,R);
} int main() {
int n,m,k;
n = read();
bit.n = m = read();
for (int i=; i<=m; ++i) v[read()].push_back(i); // 第read()个国家的空间站i
for (int i=; i<=n; ++i) T[i] = read(),A[i] = i;
k = read();
for (int i=; i<=k; ++i)
OP[i].l = read(),OP[i].r = read(),OP[i].val = read();
OP[++k] = (OPT){m+,m+,}; // 特判不行的情况 solve(,n,,k);
for (int i=; i<=n; ++i) printf(Ans[i]==k?"NIE\n":"%d\n",Ans[i]);
return ;
}

P3527 [POI2011]MET-Meteors的更多相关文章

  1. 洛谷 P3527 [POI2011]MET-Meteors 解题报告

    P3527 [POI2011]MET-Meteors 题意翻译 \(\tt{Byteotian \ Interstellar \ Union}\)有\(N\)个成员国.现在它发现了一颗新的星球,这颗星 ...

  2. 「POI2011」Meteors

    「POI2011」Meteors 传送门 整体二分,树状数组实现区间修改单点查询,然后注意修改是在环上的. 参考代码: #include <cstdio> #include <vec ...

  3. 洛谷P3527 [POI2011]MET-Meteors [整体二分]

    题目传送门 Meteors 格式难调,题面就不妨放了. 分析: 一道整体二分的练手题. 就是一般的整体二分的套路,但是要注意,将修改和询问加入队列的时候要先加修改再加询问.另外,博主代码打得太丑,常数 ...

  4. 【BZOJ】【2527】【POI2011】Meteors

    整体二分+树状数组 整体二分……感谢zyf提供的入门题 简单粗暴的做法:枚举每一个国家,二分他的$w_i$,然后计算……然而这样效率很低…… 整体二分就是:对所有的国家一起进行二分,$w_i$在mid ...

  5. [洛谷P3527] [POI2011]MET-Meteors

    洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1 ...

  6. 【BZOJ2527】【POI2011】Meteors [整体二分]

    Meteors Time Limit: 60 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 这个星球经常会下陨石雨.BI ...

  7. 洛谷P3527 [POI2011]MET-Meteors(整体二分)

    传送门 整体二分 先二分一个答案,判断是否可行,把可行的全都扔到左边,不可行的扔到右边 判断是否可行用树状数组就行 具体细节看代码好了 整体二分细节真多……也可能是我大脑已经退化了? //minamo ...

  8. Luogu P3527 [POI2011]MET-Meteors 整体二分

    思路:整体二分 提交:4次 错因:树状数组开的$int$ 题解: 二分操作序列,将仅用$[l,md]$即可满足要求的国家递归到左半边,将仅用$[l,md]$不能满足要求的国家,把他们的要求去掉左半边的 ...

  9. 【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法

    整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就 ...

随机推荐

  1. Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像

    实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...

  2. 将nodeList转换为数组(兼容性)

    将nodeList转换为数组(兼容性) function arrayofNodes(nodes){ var arr = null; try{ arr = Array.prototype.slice.c ...

  3. 【[NOI2003]文本编辑器】

    题目 发现这样一句话就会导致\(T\) ch[m][0]=++m; 并不是很知道为什么,可能这是某种未定义行为在不同编译器下会有不同后果? 至于这道题就很简单了,几个有关光标位置的操作就用一个变量模拟 ...

  4. 课堂笔记:HTML----------图片热点

    HTML----------图片热点: 规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可完成跳转的效果. 代码: <!DOCTYPE html PUBLIC "-//W3C ...

  5. FMDB初步使用小结

    频繁的网络请求会给用户不好的体验,在最近开发的一个项目中有一个获取个人详细信息的界面,由于是子页面,进入页面后需要重新加载数据并刷新页面,而,每一次请求服务器再返回数据不仅用户体验不好,也花费手机流量 ...

  6. JavaScript函数的方法

    在一个对象中绑定函数,称为这个对象的方法. 在JavaScript中,对象的定义是: var xiaoming = { name:'小明'; birth:1990; }; 但是,如果我们给xiaomi ...

  7. MVVM及框架的双向绑定

    MVVM由以下三个内容组成 View:视图模板 Model:数据模型 ViewModel:作为桥梁负责沟通View和Model,自动渲染模板 在JQuery时期,如果需要刷新UI时,需要先取到对应的D ...

  8. IPv4和IPv6的兼容问题

    一网络拓扑 Ipv6网络1 路由器A IPv4网络 路由器B IPv6网络2 二知识补充 [注]双协议栈主机(路由器A.B)通过域名解析器区分传过来的是IPv4还是IPv6 三处理技术 双协议栈 Ip ...

  9. jenkins添加环境变量 ,win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误。

    jenkins 添加win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误,暂时不知道怎么回事.    jenkins这样添加环境变量 .

  10. DBCacheServer升级

    前段时间完成了该服务的设计的功能,花了很多时间和经历,最终完成了一个版本,已经测试了:现在后期再次在以前的基础上,完成了一些扩展. 1.扩展了内存存储 最初版本只是采用了gauva cache进行存储 ...