摘要: 把题目作为s集,锦囊作为t集。把每个题目和它可以用的锦囊连边,这样就构成了一个二分图,求出这个二分图最大匹配。 但是这个最大匹配有限制条件,就是对于每个可能的匹配集,如果s集的i点有匹配,那么i-1点一定有匹配。 具体实现,只需要将匈牙利算法稍微改动一下,如果当前没有找到增广路的话,就break。 阅读全文
posted @ 2017-03-11 21:25 free-loop 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目说可以通过一条边多次,且点权是非负的,所以如果走到图中的一个强连通分量,那么一定可以拿完这个强连通分量上的money。 所以缩点已经很明显了。缩完点之后图就是一个DAG,对于DAG可以用DP来求出到达每一个点的money最大值。具体实现我用的是bfs。 然后如果一个强连通分量内有酒馆,那么这个点 阅读全文
posted @ 2017-03-11 17:59 free-loop 阅读(242) 评论(0) 推荐(0) 编辑