题意:给一个有向图,边严格由编号小的点到编号大的点,现在计数所有的极大路径,求每条边遍历次数的最大值。
题解:正着扫一遍,倒着扫一遍,dp值相乘。
#include
#include
#include
#define N 5050
#define M 50500
using namespace std;
struct KSD
{
int v,next;
long long cnt;
...
分类:
其他好文 时间:
2014-11-07 16:59:33
阅读次数:
225
查错考场上又写挂的一道签到题。。。我们发现这题要求得到一个最小字典序列显然找到所有序列然后排序是不可取的,那么我们不能使用平常的拓扑排序方法,怎么搞使得在每次处理拓扑顺序的时候来维护呢?用小根堆维护入度为0的点即可,输入的时候统计入度{$inline on}const maxn=100010;typ...
分类:
其他好文 时间:
2014-11-02 09:17:18
阅读次数:
285
题目大意:给定一个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 15:51:39
阅读次数:
157
之前在BZOJ群里请教了下各位神牛。。大概都得出了需要按某个端点排序。。首先把一开始就不合法的人(即a+b>=n的人删除),然后得出每个人的排名范围:(b,n-a]考虑dp[i]表示前i个人中最多有多少个人没说谎按n-a从小到大排序,则n-a的顺序满足dp的拓扑序,当i取得n-a的时候,寻找区间相同...
分类:
其他好文 时间:
2014-10-09 02:15:08
阅读次数:
206
http://poj.org/problem?id=1094原来拓扑序可以这样做,原来一直sb的用白书上说的dfs。。。。。。。。。。。。拓扑序只要每次将入度为0的点加入栈,然后每次拓展维护入度即可。。我是个大sb,这种水题调了一早上。。#include #include #include #inc...
分类:
其他好文 时间:
2014-10-01 12:16:31
阅读次数:
172
利用两个拓扑序号对深度优先搜索求解可达性查询进行剪枝操作,加快可达性查询效率。该方法索引较小,因此能处理大图(100000条边以上)。...
分类:
其他好文 时间:
2014-09-11 15:26:42
阅读次数:
174
【原题】http://acm.hdu.edu.cn/showproblem.php?pid=1811【类型】并查集+拓扑排序【题意】给定一些点对之间的关系(大于小于相等),判断是否发生冲突。【分析】对于冲突判断,直观的想法就是拓扑排序。以大于号或者小于号方向作为拓扑序的方向,如果处理时出现违反拓扑序...
分类:
其他好文 时间:
2014-09-07 17:08:55
阅读次数:
247
做拓扑排序的题目,首先要知道两条定理: 1、最后得到的拓扑数组的元素个数如果小于n,则不存在拓扑序列。 (有圈) 2、如果一次入队的入度为零的点数大于1,则拓扑序列不唯一。 (关系不确定) 本题有一个默认的东西,如果到了第K(看K#include#includeusing nam...
分类:
其他好文 时间:
2014-08-31 13:14:31
阅读次数:
271
发几个以前写的拓扑排序,回顾一下。拓扑排序,一般不会单独考,主要要求还是掌握好这个概念,有个感性的认识,以及能快速的写出求拓扑排序的程序,进而继续接下来对图的处理,或是比如dp之类的算法,又或者是判断有无环之类。求拓扑序主要就是运用队列,push入度为0的点,删掉它们出去的边,重复这个操作。像要是求...
分类:
其他好文 时间:
2014-08-10 23:50:51
阅读次数:
442
题意:
输入有两行,第一行给出若干出现的字母,第二行给出若干对关系x y,表示x<y,要从小到大排序,求所有合法序列,按字典序输出。
分析:
按字典序输出所有的拓扑序,和POJ 1128 &ZOJ 1083的方法一样,回溯求解即可,详情请戳这里: POJ 1128 & ZOJ 1083 Frame Stacking (拓扑排序)
这题的输入是比较恶心的,要注意写得鲁棒些。...