拓扑排序
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ2109: [Noi2010]Plane 航空管制 解题报告
写完发现我真是想多了,一直觉得nm+n2lognnm+n^2logn过不了,结果轻松过去了2109好像没有这题的第一问呀,不过有没有第一问都差不多…感觉上这题每个数最前的位置不能一起求的,所以考虑一个一个求 如果只求第k个数最前的位置是什么的话,因为题意要求有些航班只能在一些航班之后起飞,所以先建一个拓扑图,但如果是按照位置1~n这样弄,每次在入度为0的点里面不知道选哪个点,因为有后效性(直接选限原创 2016-10-16 10:57:59 · 915 阅读 · 0 评论 -
BZOJ4010: [HNOI2015]菜肴制作 解题报告
拓扑排序 因为题意要求是i尽量前的情况下i+1尽量前,所以按制作顺序取每次入度为0的最小的出来会错 那么倒着想,如果从后往前制作,反向建图的话,每次取入度为0的编号最大的 (窝不会证,但是想一想感觉是挺对的),最后把顺序倒着输出就可以了 好坑的输出判定,PE了好多次code:#include<set>#include<map>#include<deque>#include<queue>原创 2016-10-15 15:07:38 · 635 阅读 · 0 评论 -
BZOJ4011: [HNOI2015]落忆枫音
Orz PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/45194103用脉络树总数减去不合法的情况(即树上有环的情况),拓扑序DP,注意特判连的边指向1的情况学到了新姿势:线性求逆元 原理: (假设现在要求a的逆元,x=Mod/a,y=Mod%a) ax+y≡0→−ax≡y→a−1≡−x∗y−1ax+y≡0→−ax≡y→a...原创 2016-10-18 08:23:20 · 953 阅读 · 2 评论 -
BZOJ1179: [Apio2009]Atm
给一个有向图,每个点有价值,第一次到达这个点可以获得他的价值,给出起点和若干个终点,问最大能获得的价值是多少缩点后变成一个DAG,f[i]表示起点到这个点最大价值,直接拓扑序DP就好了code:#include<set>#include<map>#include<deque>#include<queue>#include<cmath>#include<ctime>#include<cma原创 2017-07-31 18:41:12 · 321 阅读 · 0 评论 -
BZOJ3832: [Poi2014]Rally
喵喵喵新建点st连向所有点,所有点连向点ed,f[i]表示S到i的最长链,g[i]表示i到T的最长链,那么过一条边< u,v>的最长链就是f[u]+< u,v>+g[v],将这个定义为边权,那么原图任意一个割集中最大的边权就是图中的最长链 按拓扑序枚举删的点,一开始原图分成st和其他点两个集合S,T,每次选出T中一个可拓展的点v,将割集中连向v的边删掉,剩余的最大边权就是删去v的答案,再将v加入S原创 2017-11-29 11:08:38 · 324 阅读 · 0 评论 -
BZOJ1124: [POI2008]枪战Maf
发现这是若干个基环内向树和若干个环 最坏情况下: 一个单独的环死剩1个 一个基环内向树死剩入度为0的点 最优情况下,显然按照拓扑序开枪死的人最少,模拟一下就行了注意特判一个单独的自环qwqcode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#inclu原创 2017-12-08 09:39:51 · 349 阅读 · 0 评论