首页 > 其他分享 >AGC304Ex Constrained Topological Sort 题解

AGC304Ex Constrained Topological Sort 题解

时间:2023-10-25 22:11:51浏览次数:32  
标签:Sort 标号 le AGC304Ex 题解 拓扑 入度 Constrained

AT


一个直接的想法是拓扑排序时从小到大标号:每次在入度为 \(0\) 的点中找到 \(l_{u}\le i\) 且 \(r_{u}\) 最小的 \(u\),令 \(p_{u}=i\)
问题是如果 \(r_{u}\) 很大,那么 \(u\) 被标号的优先级很低,会连累 \(u\) 的后继中 \(r\) 较小的点
做法是倒着拓扑一遍,令 \(r_{u}\leftarrow \min_{(u,v)\in\mathbb{E}}\{r_{u},r_{v}-1\}\)

下面证明任意合法方案可以被调整成一个能被构造出来的合法方案。方便起见,对图上结点重新编号使得原合法方案中点 \(i\) 的标号为 \(i\),即 \(p_{i}=i\)

设 \(x\) 为第一个不满足上述构造的位置,即标 \(x\) 时,存在入度为 \(0\) 的点 \(y>x\) 满足 \(l_{y}\le x,r_{y}<r_{x}\)。证明让 \(y\) 在 \(x\) 之前标号(即令 \(p'_{y}=x,p'_{x}=x+1,\cdots,p'_{y-1}=y\))仍合法:
\(y\) 的入度为 \(0\),因此仍满足拓扑序
只有 \(y\) 的标号减小了,\(l_{y}\le x=p'_{y}\)
\(i=x,\cdots,y-1\) 的标号增大了,\(y\le r_{y}\le r_{i}\)

code

标签:Sort,标号,le,AGC304Ex,题解,拓扑,入度,Constrained
From: https://www.cnblogs.com/ft61/p/17788135.html

相关文章

  • [ARC164D]1D Coulomb 题解
    [ARC164D]1DCoulomb题解题意在长为\(2N\)的数轴上放有\(2N\)个小球,第\(i\)个小球在坐标\(i\)的位置。\(2N\)个小球中有\(N\)个小球带正电,有\(N\)个小球带负点。记第\(i\)个小球带\(a_i\)单位电荷(\(a_i\in\{1,-1\}\)),小球之间受到力的作用,第\(i\)个小球受到......
  • P3214 [HNOI2011] 卡农 题解
    感觉不是很麻烦,可能就组合排列转化绕一点。。。抽象化题意给定\(n\)个元素,从中选出\(m\)个集合,要求:集合不为空,集合里不能有相同的元素\(m\)个集合都互不相同所有元素被选出的次数为偶数求方案数,并对\(100000007\)取模凭感觉是DP+组合数设\(dp[i][0/1]\)......
  • P6109 [Ynoi2009] rprmq1 题解-猫树+Segment Tree Beats
    20231025P6109[Ynoi2009]rprmq1题解-猫树+SegmentTreeBeats不愧是学长出的题。。。让我更深刻地理解了猫树。Statement传送门有一个\(n\timesn\)的矩阵\(a\),初始全是\(0\),有\(m\)次修改操作和\(q\)次查询操作,先进行所有修改操作,然后进行所有查询操作。一次修......
  • P5156 [USACO18DEC] Sort It Out P 题解
    题意有一个长度为\(n\)的排列\(a_1,a_2,\cdots,a_n\),选出\(\{1,2,\cdots,n\}\)的一个子集,对这个子集中的数依次进行如下操作:设当前数为\(v\),则若\(a_v\)大于\(a_{v+1}\)(如果有的话),就交换。如果小于,则若\(a_v<a_{v-1}\)(如果有的话),就交换。重复上述操作知道\(a_{v-1}<......
  • CF1555D题解
    分析注意到字符集大小很小,那么很容易就会产生回文,那么合法序列的种类就会比较有限。思考对于不同长度而言合法序列的种类,显然长度为\(1\)时无回文,长度为\(2\)只要两个字符不同就无回文。尝试扩展到长度为\(3\)时的情况,显然\(s_1\neqs_2\),\(s_2\neqs_3\)。发现\(s......
  • P9669 [ICPC2022 Jinan R] DFS Order 2 题解
    P9669[ICPC2022JinanR]DFSOrder2题解简要题意给定一棵\(n\)个节点的树,根节点是\(1\)。从根节点开始深度优先搜索这一棵树,dfs序是在搜索过程中访问节点的顺序。对于每一个节点\(v\),你要给出有多少种不同的dfs序,使得\(v\)出现在第\(j\)个位置。答案对\(99824......
  • P9769 HUSTFC 2023 简单的加法乘法计算题 题解
    动态规划#单调队列Question给出一个\(x=0\)通过一些操作把\(x\)变成\(y\)。有两个集合\(A,B\)。\(A\)包含了\(n\)个元素,分别是\(1-n\)的所有正整数,集合\(B\)给出\(m\)个元素,可以进行一下函数选择\(A\)中的一个元素\(a\),令\(x\)加上\(a\)选择\(B\)......
  • CF1555B题解
    分析放桌子有两种放法,一种是上下放,一种是左右放,分别计算最小值取\(\min\)即可。注意到原题使用的是平面直角坐标系,于是将原图顺时针旋转\(90^{\circ}\),将下标表示方式与代码中下标的表示方式统一,相应的,左下角和右上角也变成了左上角和右下角。代码#include<iostream......
  • Kettle链接SqlServer+Jdk8 问题解决
     这两天要弄个ldap对接,客户端server2016,数据库那边winserver2008,数据库也是2008最开是链接出现类似这样的,更换了链接mssql的Jar版本,从12换到了6的老版本,没用。  后来更改网上提示的  C:\ProgramFiles\Java\jre-1.8\lib\security\java.security文件jdk.tls.......
  • B1024 题解
    本着10月杂题题解只记重量级的原则,再加上这个系列好久没更新了,搞一发。原题链接发挥还可以的一场,至少比csp-s发挥的好。T1智慧概率题,考场差点出来,30pts。T2简单计数题,之前几场都卡T2,终于出来一次,100pts。T3简单数据结构题,打的30pts暴力,但是有50pts。T4智慧......