
拓扑排序
文章平均质量分 59
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2208 JSOI2010 连通数 Tarjan+拓扑排序
题目大意:给定一个n个点的有向图,求有多少点对(x,y),使x沿边可到达y设f[i][j]为从i到j是否可达首先强联通分量中的任意两个点均可达 于是我们利用Tarjan缩点缩点之后是一个拓扑图,我们求出拓扑序,沿着拓扑序从后向前DP,状态转移方程为:f[i][k]=or{ f[j][k] } (i有直连边到达j,1鉴于每个点的值只会是1或者0,所以我们可以直接状压,或者干脆开b原创 2014-10-13 14:14:31 · 1929 阅读 · 0 评论 -
BZOJ 4010 HNOI2015 菜肴制作 拓扑排序+堆
题目大意:给定一张无向图,求一个拓扑序,使: 1的位置最靠前 在保证上面的条件下使2的位置最靠前 在保证上面的条件下使3的位置最靠前 …… 注意不是字典序最小!例如样例3建立反图,对反图求字典序最小的拓扑序,然后反向输出即可。 我不知道为什么。真的不知道。 求个解答在线等。#include <cstdio>#include <cstring>#include <iostream>原创 2015-04-22 12:21:28 · 2686 阅读 · 3 评论 -
BZOJ 4011 HNOI2015 落忆枫音 拓扑序DP
题目大意:给定一张有向无环图,现在要求加入一条边,求加入后以1为根的树形图个数 首先不考虑加入的这条边,那么这个图是一个DAG 由朱刘算法的推论可知,如果除根节点外每个点都选择一条入边,由于没有环,因此一定会形成一个树形图 因此答案就是∏ni=2degreei\prod_{i=2}^ndegree_i 其中degreeidegree_i表示第ii个点的入度 现在加入这条边之后,我们仍然可以套原创 2015-04-22 13:49:30 · 5050 阅读 · 1 评论 -
BZOJ 1880 Sdoi2009 Elaxia的路线 SPFA+拓扑排序
题目大意:给定一张无向图,求s1到t1与s2到t2的最长公共最短路以s1 t1 s2 t2为源做4次最短路如果某条有向边满足s到起始点的距离+边长+终点到t的距离=s到t的最短路 那么这条边就可以在s到t的最短路上我们把所有既在s1到t1的最短路上也在s2到t2的最短路上的有向边都拎出来容易证明这个图一定没有环 因此拓扑排序求最长链即可写完发现过不去样例。。。因为这题题目描原创 2015-03-21 08:58:39 · 2636 阅读 · 0 评论 -
BZOJ 2938 Poi2000 病毒 AC自动机+拓扑排序
题目大意:给定n个01串,问是否存在一个无限长的01串,不包含这n个01串中的任何一个建出Trie图之后判环即可我这傻逼一开始居然跑了一个DFS去判环23333#include #include #include #include #define M 30300using namespace std;int n;char s[M];namespace Aho_Coras原创 2015-03-08 17:00:48 · 1964 阅读 · 0 评论 -
BZOJ 3890 Usaco2015 Jan Meeting Time 拓扑排序
题目大意:给定一张拓扑图,每条边有两个边权,求两条1到n的路径,第一条用边权1,第二条用边权2,要求两条路径长度相等且最短注意到边权拓扑序DP一下用bitset做就行了#include #include #include #include #include #define M 110using namespace std;struct abcd{ int to,next原创 2015-03-06 13:04:38 · 1757 阅读 · 0 评论 -
BZOJ 3887 Usaco2015 Jan Grass Cownoisseur Tarjan+拓扑排序
题目大意:给定一张图,从1开始随便走最后回到1,有一次机会可以反向沿着某条边走一次,求最多能经过多少个点显然如果没有反向的机会的话答案就是1号节点所在强连通分量的大小现在有了这个机会 那么将某条边反向后 缩点之后的图形成了一个包含1号节点所在强连通分量的环 这样才能使答案增加将这个环从反向的边和1号节点所在强连通分量处断开 发现这个环被拆成了两条链一条从1出发,一条指向1因此缩原创 2015-03-05 13:15:41 · 2985 阅读 · 1 评论 -
BZOJ 3832 Poi2014 Rally 拓扑排序+堆
题目大意:给定一张拓扑图,要求删掉一个点使最长链最小,求删掉的点以及删掉后的最长链这题真是神思路- -首先我们建立源点和汇点 源点连向所有点 所有点连向汇点那么图中最长链就变成了S到T的最长链然后我们拓扑序DP求出S到每个点的最长链f[x]和每个点到T的最长链g[x]我们令一条x->y的边的权值为f[x]+g[y]那么这个图的最长链就转化成了所有边的边权的最大值更进一步原创 2015-03-16 00:02:02 · 2470 阅读 · 1 评论 -
BZOJ 1565 NOI2009 植物大战僵尸 最大权闭合图+拓扑排序
题目大意:给定一个m*n的草坪,每块草坪上的植物有两个属性:1.啃掉这个植物,获得收益x(可正可负)2.保护(r,c)点的植物不被啃掉任何一个点的植物存活时,它左侧的所有植物都无法被攻击求最大收益首先这个保护和被保护的关系就是最大权闭合图的连边关系 然后直接跑就行然后我们就会发现没过样例0.0原因当图出现环时,根据题意,环上的所有点都不能取(想象一个无冷却的食人花前面放原创 2014-09-17 16:45:02 · 2100 阅读 · 0 评论 -
BZOJ 1194 HNOI2006 潘多拉的盒子 BFS+Tarjan+拓扑序DP
题目大意:给定一些自动机,如果某个自动机AA能产生的所有串都能在自动机BB中产生,则称BB是AA的一个升级,求最长链 这题TM有毒 数据范围5050,暴力枚举每一对点之间的关系,然后Tarjan缩点求最长链就行了 现在对于一对自动机AA和BB,我想知道AA能产生的所有串是否都能在BB中产生,那么BFS就可以了 我们用一个二元组(x,y)(x,y)表示走了某个串后AA走到了节点xx,BB走到了原创 2015-04-27 18:51:57 · 3459 阅读 · 0 评论