首页 > 其他分享 >LOJ2399「JOISC 2017 Day 4」绑架 2

LOJ2399「JOISC 2017 Day 4」绑架 2

时间:2023-01-02 23:14:21浏览次数:126  
标签:递归 询问 LOJ2399 流量 JOISC 区域 道路 答案 2017

Link

题解

发现询问次数很少,可以支持单次询问 \(O(N+M)\) 的做法,这样就可以枚举每条道路然后去做。

但直接做貌似不太行,所以先发掘一些性质。

假如询问点 \((X,Y)\) 处在全局流量最大的道路上且方向与道路走向一致,那么答案能轻松得出。

否则这条道路会将整张图分成两个区域(不含流量最大的道路),显然不能从一个区域到达另一个区域。

这样我们就可以以询问点所在的区域(或者处于流量最大的道路内但方向指向了所在的区域)递归下去,最多递归 \(O(N+M)\) 次。

对于局部图,我们还是选择当前流量最大的道路,但道路上的点的答案就不是那么显而易见,但也是好做的,设道路的两端的坐标为 \(l,r\),那么两端都会与之前的某两条道路相交,答案是好算的,设它们的答案分别是 \(ansl,ansr\),那么当前道路坐标为 \(x\) 的答案就是 \(\max(ansl+x-l,ansr+r-x)\)。

对于特殊情况:在当前流量最大的道路但方向不对,其实做法是一样的,继续递归下去即可,但初始递归的时候我们横向和纵向都要递归一遍。

快速找到横向/纵向区间内流量最大的道路显然用 ST表 维护。

时间复杂度:\(O(Q(N+M))\)

AC Code

https://atcoder.jp/contests/joisc2017/submissions/37699257

标签:递归,询问,LOJ2399,流量,JOISC,区域,道路,答案,2017
From: https://www.cnblogs.com/CCPSDCGK/p/17020802.html

相关文章

  • [Spark基础]-- spark submmit大会(2017年6月5日 - 7日)
    SparkSummit(2017年6月5日-7日,旧金山)议程发布 1、官方:​​http://spark.apache.org/news/spark-summit-june-2017-agenda-posted.html​​2、议程:​​https://spark-summ......
  • SQL Server 2012/2016/2017 新增函数
    /**************************************************************SQLServer2012新增的函数***************************************************************/ ......
  • Luogu P5676 [GZOI2017] 小z玩游戏
    P5676[GZOI2017]小z玩游戏难度:提高+/省选-标签:Tarjan建图\(\mathtt{blog}\)有\(n\)组数\((w_i,e_i)\),如果当前数值为\(w_i\)即可改变为\(e_i\),如果当前数值......
  • VS2017: cannot open source file “Windows.h“
    在VS2017中打开一个VC++项目,#include行提示cannotopensourcefile"Windows.h"解决方法:右击Project->Properties->General->WindowsSDKVersion,选择10.0.xxxx......
  • [JZSC2017]【NOIP2017提高组模拟7.4】总结
    Text缓缓睁开眼睛,呀,怎么这么安静?一看表我去8:40要命啊光速刷牙洗脸,早饭来不及买冲向机房先看个题,看完再去买T1好像找规律矩乘?T2随手DP一下或者构个图跑T3又是字......
  • [JZOJ5177]【NOIP2017提高组模拟6.28】TRAVEL
    DescriptionSolution显然,答案的L和R一定是某两个边权那么可以直接把边按R排序。枚举L,二分R判断所有的边是否合法,合法的用并查集连起来判断1和N是否在一个集合中即可Co......
  • [JZOJ5215]【HEOI、SXOI2017】组合数问题
    Description求∑i=0ik+r≤nkCik+rnkmodp其中1≤n≤109,0≤r<k≤50,2≤p≤230−1Solution考虑组合数的实际意义有nk个物品,取的物品数模k等于r的方案数设Fi,j表示前i个物......
  • [JZOJ5396]【NOIP2017提高A组模拟10.6】Blocks
    DescriptionSolution既然随便操作问题可以转化成求极大的区间,区间平均数大于等于K可以每个点减掉K求前缀和。从左向右扫描,应该考虑二分。但是前缀和并不是单调的。然......
  • 【GDOI2017 Day 1 T2】取石子游戏
    Description如果你不想和题面软磨硬泡的话,请。。。。。(以下省略5000字)……给你一个1为根,N个点的树,每个点有权值。定义mex(S)表示不在S集合中最小的非负整数对于每个点,求......
  • 【JZWinter Camp 2017】欠题小结
    2017.1.12Day1【GDKOI2017模拟】T2[JZOJ4938]序列T3[JZOJ4939]平均数2017.1.13Day2【NOIP2017提高组模拟】T2[JZOJ3824][CFRCC2014warmupDiv.1D]渴2017.1......