
拓扑排序
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【JSOI2019】精准预测(2-SAT)(拓扑排序)(bitset卡常)
传送门省选考常数优化,卡空间卡复杂度?惊了题解:读完题知道很显然的2-SAT模型。每个人按照时间建立若干个点,表示他在这个时刻是否存活,然后按照题目给的关系连有向边(注意不要忘记连反向边)。存活时间向前连边,表示在这之前它都是活的,死亡时间向后连边,表示从此刻开始都是死亡状态。很容易发现由于我们都是规定在某个条件下某个人必死,所以图是一个DAG。要最大化一个人存活时候总存活人数,那么...原创 2019-10-25 19:55:51 · 225 阅读 · 0 评论 -
【模板】拓扑排序
参考题目:洛谷P1337解析:拓扑排序的概念我就不扯了,相信能找到这篇文章的应该都懂(毕竟标签里没有题解)。那么具体怎么实现?先扫一遍所有点,把入度为0的直接加入队列,然后每次用队首的边去扫一遍,减少扫到的边的入度,当入度为0时就说明所有能够到达它的点已经入过队了,可以将它入队。 重复上述操作直到队列为空,如果还有没入队的点,说明有环。代码:#include&...原创 2018-09-11 20:43:40 · 196 阅读 · 0 评论 -
2019.01.20【TJOI2014】【BZOJ5158】【洛谷P3971】Alice and Bob(拓扑排序)(贪心)
BZOJ传送门洛谷传送门解析:其实就是加了特技的拓扑排序。首先我们肯定可以确定一些位置的大小关系,连边建图后肯定是一个DAG,这时候应该都想得到拓扑排序。但是我们同时需要令bbb序列之和尽量大,换句话说,就是大的数尽量向前放,小的数尽量向后放。只需要在拓扑排序的时候加一个优先队列来维护就行了。代码:#include<bits/stdc++.h>using name...原创 2019-01-20 15:02:18 · 253 阅读 · 0 评论 -
2019.03.06【BJOI2018】【洛谷P4429】【BZOJ5295】染色(拓扑排序)(证明)
BZOJ传送门洛谷传送门解析(含证明):显然所有非二分图全部gg。如果一个点不在任何环中,它就是无效的。我们删去这些点,保留剩下点的导出子图。显然现在的图只有若干个二分图形成的联通快,我们对每个联通快单独考虑。显然一个单独偶环或独立点可以直接丢掉。将以上两个情况去除之后,我们发现有一些二分图也gg了,比如这个:我们用大写字母表示颜色,可以为上面的图赋颜色集合为:ABBC...原创 2019-03-06 20:47:11 · 681 阅读 · 0 评论 -
【十二省联考2019】【LOJ3049】【洛谷P5248】【BZOJ5496】字符串问题(SAM优化建图)(拓扑排序)
LOJ传送门洛谷传送门BZOJ传送门解析:瞎写一通成功拿下BZOJ倒数第一(在线丢人 )常数实在是太大了没办法。。。首先我们很显然发现要求的是DAG最长链,这是一个图论问题。只要把图建出来一切都好说。如果建出图有环肯定就咕咕咕了。显然不能暴力建图,考虑怎么优化前缀那部分的连边。建立反串后缀自动机,那么前缀关系就转化成了后缀。树上倍增找到每个串的对应节点,用一个vector存下...原创 2019-04-10 17:00:13 · 335 阅读 · 0 评论 -
【TC SRM 499】ImpossibleGame(SCC)(拓扑序DP)
传送门又想起了当初在TC上刷网络流的时候被submit failed支配一下午的恐惧。。。题解:发现由于我们允许交换任意两个位置的字符,对我们唯一有用的就只剩下字符个数,30的不超过4个的有序非负整数拆分有545654565456种,权值显然就是n!a!b!c!d!\frac{n!}{a!b!c!d!}a!b!c!d!n!,直接组合数算一下即可,连边可以直接暴力连,那么缩一个SCC之后就...原创 2019-10-02 23:29:30 · 190 阅读 · 0 评论 -
【校内模拟】五彩斑斓(拓扑排序)
题解:今天最难的题???根据抽屉原理,必然有至少一个行或者列是根本没有动过的。枚举这个行和列,则这一行或列上所有点的颜色来源就是另一个方向。以此类推,我们可以确定所有行列的染色情况,注意到染色被覆盖是一个先后关系,判断合法可以直接拓扑排序,然后就没了。。。代码:#include<bits/stdc++.h>#define ll long long#define re ...原创 2019-10-03 15:43:14 · 203 阅读 · 0 评论