拓扑排序
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
QYQ在艾泽拉斯
题目大意有许多“有向”联通块,你可以选择其中至多k个联通块,每个联通块从任意一个点出发,任意一个点结束。每个点可以经过多次。一共N个点M条边,你获得的价值为所有经过的点点权之和,请最大化你的价值。 N<=10^5,M<=10^6。 “有向”联通块的定义是将有向边看作无向边后的联通块,但原来每条边都是有向边。缩点由于都是有向边,我们知道,如果到达了一个点,与其在同一连通块的点均可到达。因此我们可以原创 2015-10-17 13:58:35 · 765 阅读 · 0 评论 -
[bzoj3167][HEOI2013]SAO
题目大意现在有N个点,两个点之间存在有向关系。无视关系的方向性后,N个点组成一颗树。现在问对该图做拓扑排序有多少种方法?N当作树一样考虑我们无视方向,把它当作一颗树,随意找一个点作根然后进行处理。 假设当前做到点x,先将x所有子树都做完,再把x与子树两两合并。 于是现在摆在我们面前的问题是:如何用状态表示一个图,并能快速实现合并两个只存在一条联系的图? 我们用f[i,j]表示原创 2015-12-21 20:18:47 · 1677 阅读 · 0 评论 -
挑竹签
题目描述挑竹签——小时候的游戏 夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏。 挑竹签,就是在桌上摆上一把竹签,每次从最上层挑走一根竹签。如果动了其他的竹签,就要换对手来挑。在所有的竹签都被挑走之后,谁挑走的竹签总数多,谁就胜了。 身为神明的诹访子自然会让早苗先手。为了获胜,早苗现在的问题是,在诹访子出手之前最多能挑走多少竹签呢? 为了简化问题,我们假设当且仅当挑最上层的竹签不会动到原创 2016-03-09 19:01:44 · 833 阅读 · 0 评论 -
[agc010e]Rearranging
前言想到了相对顺序和连图。 想到了多个合并。 似乎没想到按照大小连出拓扑图,导致不知道怎么样才是最小不可操作的。题目大意一个长度为n的序列。 先手可以任意打乱,然后后手可以执行若干次以下操作:交换两个相邻且互质的数。 先手希望字典序最小,后手希望字典序最大,最后序列会变成啥样?做法容易发现对于不互质的一对数,相对位置永远不变。 我们让不互质的数之间连一条边,这样形成了图。 我们不妨从小到原创 2017-10-17 17:31:24 · 993 阅读 · 0 评论