AGC013E Snuke the Phantom Thief
首先考虑只有 L
和 D
的限制,这样是平凡的,只需要求出横坐标第 \(i\) 个点的值至少要多少,纵坐标至少要多少,然后将每个点拆点后向能连到的横坐标点和纵坐标点连边,然后跑最大费用最大流即可。
现在加上 R
和 U
的限制,我们发现这个限制好像不知道加在哪些点上,只知道是倒数哪个点,这好办啊!枚举选的点数不就好了!
总复杂度 \(O(n^5)\) 但是显然跑不满就是了。
[HNOI2013]切糕
最小割模型。
建立网络流模型,将每个纵轴看成 \(R+1\) 个点,这 \(R+1\) 个点形成的一条链中间的 \(R\) 条边对应了这 \(R\) 个点的权值。
我们定义割掉一条边代表选了这个点,那么我们就是要求相邻两个割点的边不能超过 \(D\) 。
相当于我们不能让 \(<i\) 被割且对面 \(>i+D\) 被割。因此我们让对面的 \(i+D\) 向 \(i\) 连一条无穷边即可。
还要保证一条链最多割一条,但是貌似不需要。
CF1630F Making It Bipartite
首先我们发现这个东西是偏序集,这很好啊,说明如果存在 \((a,b)(b,c)\) 那么一定存在 \((a,c)\) 。
一个图是二分图的充要条件是没有奇环,而上面显然有了一个。因此我们的目标就是让图中没有一个点既有入边又有出边。
因为是偏序集,所以考虑用最长反链相关来解决。将每个点 \(u\) 拆成两个点 \(u_1,u_2\),表示在最后的图上只有入度或者只有出度。显然这两个之间是矛盾的,因此可以 连边 \(u_1\to u_2\) 。对于原图存在的一条边 \((u,v)\) ,显然 \(u\) 和 \(v\) 之间的关系除了 \(u\) 只有出边,\(v\) 只有入边之外都是矛盾的,因此连边 \(u_1\to v_1,u_1\to v_2,u_2\to v_2\) 即可。然后可以跑最小链覆盖。
时间复杂度是Dicnic的 \(O(A\ln A\sqrt n)\) 但是显然不满。
[NOI2019] 序列
貌似是模拟费用流经典题,但是我没做过(
首先考虑建立费用流模型,大概就是首先对 \(S\to i\) 连边 \((1,a_i)\) ,\(i\to i+n\) 连边 \((\infty,0)\),\(i+n\to T\) 连边 \((1,a_i)\) 。
至少选 \(L\) 个相同位置不好做,转化成至多选 \(K-L\) 个不同位置,那么可以建立点 \(x,y\),\(x\to y\) 连边 \((K-L,0)\),然后每个 \((i,x)\) 连边 \((\infty,0)\) ,每个 \(y\to i+n\) 连边 \((\infty,0)\)。对这个图跑最大费用的 \(K\) 个流就是答案。
然后模拟最短路的过程。首先可以想到的方案是 \(S\to i\to i+n\to T\) 和 \(S\to i\to x\to y\to j\to T\) 。这是不退流的最短路。
记 \(i\) 的匹配点为 \(p_i\),如果要退流还有以下三种:
- \(S\to i\to x\to j\to j+n\to T\)。这对应于原图将原来的 \(j\to p_j\) 转化成 \(i\to p_j,j\to j+n\),发现这样是多了 \(a_i\) 和 \(b_j\) ,且 \(x\to y\)的流量不变。
- \(S\to i\to i+n\to y\to j+n\to T\)。容易发现这和上一种情况是对称的。
- 第三种情况比较复杂,\(S\to i\to i+n\to y\to x\to j\to j+n\to T\),对应于原图就是将 \(i\to p_i\) 变成 \(i\to i+n,p_i-n\to p_i\)。也就是多了 \(b_i\) 和 \(a_{p_i-n}\) 。
- 单从图上来看貌似还有前两种拼在一起的情况,但是这样一次性增加了两个流量,且实际上就是先第一种,然后不退流的第二种。所以不用考虑。
因此我们可以用堆来维护五个值:
- \(a_i+b_i\),满足 \(i\) 和 \(i+n\) 都没有匹配。
- \(a_i\),满足 \(i\) 没有匹配。
- \(b_i\),满足 \(i+n\) 没有匹配。
- \(a_i\),满足 \(i\) 没有匹配,且 \(i+n\)匹配了。
- \(b_i\),满足 \(i+n\) 没有匹配,且 \(i\) 匹配了。
这五个值可以计算出上面五种情况的答案。但是这样不太对,因为上面五种情况最大值唯一还好说,如果不唯一,那么会有优先级的问题。
贪心地想,肯定是能任意匹配地对数越多越好,因此退流第三种显然优先级最高,然后是三种不影响任意匹配数地情况相等,最后要加一次的情况优先级最低。
这样你会得到一个大常数 \(O(n\log n)\) 做法,在 O2 加持下貌似跑得飞快。
标签:连边,退流,匹配,个点,submission,原图,流在,网络,最优化 From: https://www.cnblogs.com/275307894a/p/17145528.html