首先缩一波点,就变成了一个DAG,边权是出点的大小 那我们走到某个点的时候可能会有两种状态:已经走过反边或者没走过 于是就把一个点拆成两层(x和x+N),第二层的点表示我已经走过反边了,每层中的边和原来一样,但对于边(u,v),我们连一个(v,u+N),表示走了这条边的反边,这条边的边权是u的大小 ...
分类:
其他好文 时间:
2018-11-09 16:21:52
阅读次数:
161
n<=100000个点m<=100000条边有向图,有一次机会沿着某条边反方向走一次,求从一号点出发最终到达一号点的路径经过的不同的点的数量的最大值。 tarjan缩完点,如果没机会反方向的话答案就是1所在的分量的大小。现在有了,其实就是1->1能到达的某个点->反向边->能到达1的某个点,所以只要 ...
分类:
其他好文 时间:
2017-09-28 10:07:41
阅读次数:
169
题意: 给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少正整数次对答案的贡献均为1) =>有向图我们先考虑缩点。然后观察缩点后的图可以发现新的路径中必定只有一条边是反向的才符合条件。那么我们可以联想到某道最 ...
分类:
其他好文 时间:
2016-11-07 01:28:30
阅读次数:
321
【题目大意】 给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少正整数次对答案的贡献均为1) 【思路】 首先缩点,对于每一个联通块求出正图和反图中节点1所在的联通块到它的最长节点数。这个用拓扑排序处理一下。 ...
分类:
其他好文 时间:
2016-09-27 00:23:36
阅读次数:
206
题目大意:给定一张图,从1开始随便走最后回到1,有一次机会可以反向沿着某条边走一次,求最多能经过多少个点
显然如果没有反向的机会的话答案就是1号节点所在强连通分量的大小
现在有了这个机会 那么将某条边反向后 缩点之后的图形成了一个包含1号节点所在强连通分量的环 这样才能使答案增加
将这个环从反向的边和1号节点所在强连通分量处断开 发现这个环被拆成了两条链
一条从1出发,一条指向1
因此缩...
分类:
编程语言 时间:
2015-03-05 14:53:01
阅读次数:
177
题意:
给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少次(≥\geq1)对答案的贡献均为1)
题解:
首先强连通分量缩点。
然后形成了dfs统计出:
集合A:点 11 能到哪些点,
集合B:哪些点能到点 11
然后这两个集合各为拓扑图。
现在一条从1出发,最后又回到1的最长路径就可以被...
分类:
编程语言 时间:
2015-03-05 14:48:35
阅读次数:
165