将位置划分成$O(m)$段区间,每段最早被阻挡的时间可以用堆维护。

那么每段区间对询问的贡献独立,扫描线处理即可。

时间复杂度$O(m\log m)$。

#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
typedef pair<int,int>P;
const int N=100010;
int n,m,i,x,y,z,cnt,tot,sum,k;bool del[N];priority_queue<P>q;
struct E{int x,y,p;E(){}E(int _x,int _y,int _p){x=_x,y=_y,p=_p;}}e[N<<1],a[N<<2];
inline bool cmp(const E&a,const E&b){return a.x<b.x;}
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
inline void add(int x,int y){while(!q.empty())if(del[q.top().second])q.pop();else break;if(q.empty())return;int t=-q.top().first;a[++tot]=E(t-y,y-t,1);a[++tot]=E(t-x,t-x,-1);
}
int main(){read(m),read(n);for(i=1;i<=n;i++){read(x),read(y),read(z);e[++cnt]=E(x,z,i);e[++cnt]=E(y,z,-i);}sort(e+1,e+cnt+1,cmp);for(i=1;i<=cnt;i++){if(i>1&&e[i].x>e[i-1].x)add(e[i-1].x,e[i].x);if(e[i].p>0)q.push(P(-e[i].y,e[i].p));else del[-e[i].p]=1;}sort(a+1,a+tot+1,cmp);for(i=1;m--;printf("%d\n",x*k+sum))for(read(x);i<=tot&&a[i].x<=x;i++)sum+=a[i].y,k+=a[i].p;return 0;
}

  

BZOJ4223 : Tourists相关推荐

  1. 每日英语:Foreign Tourists Skip Beijing

    Overseas tourists continued to shun Beijing through 2013. shun:避开,避免,回避 Amid rising pollution and a ...

  2. 【学习笔记】圆方树(CF487E Tourists)

    终于学了圆方树啦~\(≧▽≦)/~ 感谢y_immortal学长的博客和帮助 把他的博客挂在这里~ 点我传送到巨佬的博客QwQ! 首先我们来介绍一下圆方树能干什么呢qwq 1.将图上问题简化到树上问题 ...

  3. [CF487E]Tourists

    题意:一个无向连通图,点有点权,支持单点修改和查询,查询$(x,y)$是找出一条$x$到$y$的简单路径使得路径点权最小值最小,输出这个最小值 码农题...而且细节很多... 先找边双连通分量缩点,对 ...

  4. 2018.11.09 codeforces487E. Tourists(tarjan+树链剖分)

    传送门 先把边双连通分量用圆方树一样的方法缩点,然后把新建的树树剖维护. 注意对于边双连通分量需要维护动态最小值,可以用multisetmultisetmultiset. 代码: #include&l ...

  5. 【CF487E】Tourists【圆方树】【树链剖分】【multiset】

    题意:给一张 nnn 点 mmm 边的连通无向图,点帯权,qqq 次操作: 修改一个点的权值. 询问两点间所有简单路的最小权值的最小值. n,m,q≤105n,m,q\leq 10^5n,m,q≤10 ...

  6. [Codeforces 487E]Tourists

    Description 题库链接 给你张 \(n\) 个点 \(m\) 条边的连通无向图. \(q\) 次操作,让你支持: 询问可以出现在两点之间的简单路路径上的点的最小权值: 修改某个点的点权. \ ...

  7. The North American Invitational Programming Contest 2016 - Tourists ( LCA )

    题意 给出一棵n个点,n-1条边的树.现在计算所有标号为x到y的距离之和(满足y>x且y是x的倍数) 思路 关于树上任意两点距离之和,一开始想到树形dp,可树形dp,是对每条边,求所有可能的路径 ...

  8. 广义圆方树+树链剖分+set(Codeforces Round #278 (Div. 1): E. Tourists)

    前置:双联通分量.圆方树.树链剖分 什是是广义圆方树 圆方树是针对于仙人掌建树,而广义圆方树是针对无向图建树,对于一个无向图 无向图中的所有点 → 广义圆方树中的所有圆点 无向图中的一个双联通分量 → ...

  9. CF487E Tourists(圆方树+树链剖分)

    洛谷题目传送门 解题思路 不会圆方树的可以看我的博客圆方树学习记录及例题 首先Tarjan寻找点双连通分量,然后建立圆方树,每个方点存这个点双内的最小点权 将圆方树树链剖分之后,对于修改操作,将这个点 ...

  10. URAL - 1902 Neo-Venice

    题目: Mars was the first planet colonized by humans. After a long terraforming process its appearance ...

最新文章

  1. Revit API创建标高,单位转换
  2. windows10大瘦身 - Lync录屏的临时文件夹清理
  3. php declare 作用,php declare用法详解
  4. 数字信号处理基础知识00
  5. 教你如何用vbs实现微信自动发送消息功能
  6. 信息系统项目管理师通过率是多少?
  7. PCI Express 16X和PCIE 2.0有什么区别?哪个更好?
  8. 颈椎前路caspar撑开器_Caspar撑开器和颈椎带锁钢板治疗下颈椎骨折脱位
  9. 永洪报表工具_2020年度10大BI工具排行榜
  10. [OpenCV实战]23 使用OpenCV获取高动态范围成像HDR
  11. 前端进行身份证验证(详细)
  12. 【侯捷】C++面向对象程序设计
  13. 使用svn向指定文件夹下载数据
  14. mysql写周报_mysql 数据分析如何实现日报、周报、月报和年报?
  15. 远程控制桌面计算机怎么填写,远程控制电脑桌面如何操作【图解】
  16. “融晶保肾调代谢”公益健康大讲堂(第二期)在贵阳强直医院开展
  17. 力扣 532. 数组中的 k-diff 数对
  18. MogaFX—汇率能充分反映货币压力吗?
  19. 磁共振t1t2信号记忆顺口溜_MRI表现:长T1长T2信号.DOC
  20. 使用Cesium动态绘制点、线、面、圆、矩形

热门文章

  1. unity黄金矿工游戏
  2. csgo查询服务器延迟,《csgo》网络延迟怎么查看 网络延迟ping查看方法分享
  3. 机械考公一般有哪些岗位?
  4. java中protected_Java中protected方法访问权限的问题
  5. 数字图像处理——灰度级、动态范围、对比度
  6. Android 快速集成文档校正能力 超简单
  7. mac Segmentation Fault
  8. va_buffersharing example
  9. java生成唯一的五位字符串_java唯一字符串ID生成方案详解
  10. setcpu_SetCpu Android超频工具