poj 2485 3921 最大流 拆点构图

题目:http://poj.org/problem?id=3921

 题意:

        大意是给你一个图,每条边权值为1,你在其中毁坏多少个点可以使得从1到n至少要花费k+1的时间

显然意思就是要求对于一条边(u,v)dist[1][u]+dist[v][n]+1<=k,那么如果当前1->u的最短路径都大于k则说明这条路径上的点u、v可以暂时不予考虑!我们只考虑 dist[1][u]+dist[v][n]+1<=k的情况(dist为多元最短路径),那么根据dist重新构图,满足dist[1][u]+dist[v][n]+1<=k的点(u,v)就加入图中,根据题意就是要保证这个图不能联通,那么求出这个图的点连通度就是答案了,注意这个图是有向图!!

解法:floyd()+sap(s,t);


你可能感兴趣的:(poj 2485 3921 最大流 拆点构图)