首页 > 其他分享 >QOJ #8232. Yet Another Shortest Path Query

QOJ #8232. Yet Another Shortest Path Query

时间:2024-11-19 18:07:57浏览次数:1  
标签:8232 平面图 leftarrow2 记作 枚举 入边 出边 Another Yet

题面传送门

我感觉这个题很牛逼!提供了一种全新的视角!

首先考虑这个平面图怎么用。因为平面图的边数满足 \(m\leq 3n-6\),所以一个平面图一定存在一个点度数 \(\leq 5\)。我们每次删掉这样的一个点,并删掉所有以这个点为端点的边,则剩下的图还是一个平面图,这样不断删除下去就可以得到每个点的删除时间,记作 \(p_i\)。对于每条边,我们让这条边从删除时间小的点指向删除时间大的点,则每个点至多有 \(5\) 条出边。

我们先考虑如何计算两个点之间不超过 \(2\) 步的答案,不妨将两个点记作 \(1,3\),中间点记作 \(2\)。对路径的形态分类讨论:

  • 形如 \(1\to 2\leftarrow 3\):枚举 \(1,3\) 的出边,找到共同的点。这样只需要至多枚举 \(25\) 次。
  • 形如 \(1\to 2\to 3\) 或 \(1\leftarrow2\leftarrow3\):枚举一个端点的出边以及出边指向的点的出边,这样也只需要枚举 \(25\) 次。
  • 形如 \(1\leftarrow 2\to 3\):枚举 \(1\),枚举一条入边,再枚举入边的端点的出边。这样总共需要枚举 \(5m\) 次。

然后考虑如何处理不超过 \(3\) 步,将两个点记作 \(1,4\),中间两个点记作 \(2,3\)。

  • 如果形如 \(1\to 2\),则枚举 \(1\) 的出边转化成 \(5\) 个距离为 \(2\) 的问题。对于 \(4\to 3\) 同理。
  • 如果形如 \(1\leftarrow2 \to3\to 4\),枚举 \(1\),枚举一条入边,再枚举两次出边。对于 \(1\leftarrow2 \leftarrow 3\to 4\) 同理。

因此,我们以 \(O(n+m)\) 的复杂度解决了,常数不用管

submission

标签:8232,平面图,leftarrow2,记作,枚举,入边,出边,Another,Yet
From: https://www.cnblogs.com/275307894a/p/18555365

相关文章

  • Codeforces Global Round 27,D. Yet Another Real Number Problem 题解
    单调栈+贪心题意:给定一个序列从左往右对于每个索引iii,求出其前缀的数组可以进行任意次以下操作的条件下:选择......
  • CF102354B Yet Another Convolution 题解
    题目描述给定长为\(n\)的数列\(a,b\),求数列\(c\)满足:\[c_k=\max_{\gcd(i,j)=k}|a_i-b_j|\\\]数据范围\(1\len\le10^5,1\lea_i,b_i\le10^9\)。时间限制\(\texttt{6s}\),空间限制\(\texttt{256MB}\)。分析别被题目名字带偏了,这道题跟卷积没有一点关系。如果......
  • 题解:AT_abc376_c [ABC376C] Prepare Another Box
    很好的一道二分答案题。听说CSP考前写tj可以让rp+=inf?注:下文中\(w\)指物品重量序列,\(x\)指箱子容量序列。先问个问题:为什么我上来就敢肯定这是个二分答案题?或者说,单调性在哪儿?非常简单:如果一个盒子的容量越大,能装下的东西就更多(废话)。那么如果\(v\)不够用,可以扩......
  • 题解:AT_abc376_c [ABC376C] Prepare Another Box
    这道题要求把\(a\)数组和\(b\)数组一一匹配,且要求无法匹配的数量最多为一,并且这个无法匹配的元素最小。可以注意到我们把两个数组排序以后一一对应以后如果出现一个无法匹配的元素,那么这一定就是答案。但是如果我们从小到大枚举,会发现最后剩下的元素不一定最小,所以我们选择......
  • abc376C Prepare Another Box
    有N个玩具,大小分别为A[i];另外有N-1个盒子,大小分别为B[i]。现要再买一个盒子,把所有玩具装到盒子里,要求每个玩具都装一个盒子,并且玩具大小不超过盒子大小。问买的盒子至少为多大?如果无法满足,输出-1。2<=N<=2E5,1<=A[i],B[i]<=1E9分析:将玩具按从大到小排序再依次处理,每次用不小于......
  • [1070] Set a CRS to a GeoDataFrame from another GeoDataFrame’s CRS
    Certainly!TosettheCoordinateReferenceSystem(CRS)ofoneGeoDataFrametomatchanotherGeoDataFrame’sCRS,youcanfollowthesesteps:AssumeyouhavetwoGeoDataFrames:gdf1andgdf2.MakesurebothGeoDataFrames(gdf1andgdf2)arealreadyloaded......
  • The instance of entity type 'xxx' cannot be tracked because another instance wit
    发生的原因,在CheckProductionCode()方法中根据主键id查询对象时没有使用AsNoTracking(),示例:_db.Productions.AsNoTracking()那么EF会把查询出的对象缓存并跟踪对象状态,之后再Update的时候就会查询现有已跟踪的对象,发现已经存在一个相同主键的对象,所以报错。///<summary>///......
  • P11022 「LAOI-6」Yet Another Graph Coloration Problem
    P11022「LAOI-6」YetAnotherGraphColorationProblem-洛谷|计算机科学教育新生态(luogu.com.cn)关于无解情况,如果这个图有两块连通块,那么不可能同时有黑色白色,假设\(1,2\)连通块,设\(1\)中有黑色,因为\(2\)中点不能到\(1\),所以\(2\)中只能是黑色,又因为\(2\)中......
  • CF959F Mahmoud and Ehab and yet another xor task 题解
    题目传送门前置知识线性基解法将操作离线下来,并按\(\{l\}\)升序排序,接着顺序插入线性基并处理询问。对于未成功插入线性基的元素\(k\)一定能被线性基内选出若干元素得到。故在\(x\)能被表出的情况下,设\(1\siml\)中成功插入线性基的元素个数为\(siz\),对于剩下\(......
  • 题解:SP23875 DCEPC14A - Another Version of Inversion
    我们注意到这道题是二维的,所以要用到二维树状数组,不会的可以看一下这篇文章。这题的思路和P1908很像,按价值从大到小排序,排完序之后用树状数组维护,每次把这个数的位置加入到树状数组中,因为是排完序之后,所以之前加入的一定比后加入的大,然后在查询当前这个数前面位置的数(是前面位......