[POJ 2594]可以用重复点的最小路径覆盖

【题目大意】给定一个无环有向图,然后求可以用重复点的最小路径覆盖。

【算法分析】既然可以用重复的,那么就可以用floyed求传递闭包,然后重复的相当于走过那条路了。然后求最小路径覆盖即可。

【HINT】记得最后要n-ans

【CODE】

#include

[POJ 1904]强连通分量、二分图匹配、巧妙转化**

【题目大意】有N个女生,N个男生,给定一些边表示这两个人可以结婚。再给定一个初始匹配,表示这个男生和哪个女生结婚。初始匹配必定是合法的。然后让你求每个男生可以和哪几个女生结婚,使得所有人都能得到婚配。

【算法分析】如果男生A可以和女生B结婚,那么连边[A,B],如果初始匹配[A,B],那么连边[B,A],最后,如果在同一个强连通分量以内,则表示可以结婚。

其实就是二分图匹配中的寻找增广路的过程,可以自己体会。

【CODE】

#include

[POJ 3660] 传递闭包

【题目大意】给定N只牛和M场比赛结果,问有多少牛的排名结果可以确定。(假设每只牛都有一个不同的力量值,大得肯定打赢小的)

【算法分析】如果A赢了B,那么连边[A,B],然后传递闭包。最后,如果某只牛的出度+入度=n-1的话,它的排名就已经确定了。

【其它】1A。这可能是除了A+Bproblem以外最短的程序了。。。水过留痕

【CODE】

#include

[POJ 3592] 强连同分量、拓扑排序、动态规划

【题目大意】给定一个N*M得矩阵,#表示不可以走,0..9表示走到这上面可以得到的分数(每个点只能采集一次)一开始你在左上角,只能向下走或向右走。然后有一些地方有传送门,可以选择无耗损地从这一点传到目标点,也可以选择不传,问最多能得到多少分。

【算法分析】先缩点,然后拓扑排序,最后用dp求最长路,输出就行了。

【其它】悲剧,RE了N遍,不过又MS并非RE得问题,我一开始把不能走到的点也算到DP序列里去了,居然一直RE。。。搞不懂为什么。改了以后终于AC。

【CODE】

#include