摘要: 题目大意:有三个集合 $P,Q,N$,P 与 N 集合之间存在一些有向边,N 与 Q 集合之间存在一些有向边。在三个集合中每个点最多只能利用一次的前提下,求最多能利用多少N 集合中的点,使得 $(p,n,q)$ 三个节点之间均有边相连。 题解:若只有两个集合,显然是二分图的最大匹配问题。对于三个集合 阅读全文
posted @ 2019-04-25 23:17 shellpicker 阅读(156) 评论(0) 推荐(0)
摘要: 题目大意:二分图匹配裸题。 题解:用网络流进行处理。 找配对方案的时候,采用遍历二分图左边的每个节点,找到不与源点相连,且正向边权值为 0,反向边权值为 1 的边,输出即可。 代码如下 cpp include using namespace std; const int maxn=110; cons 阅读全文
posted @ 2019-04-25 20:22 shellpicker 阅读(158) 评论(0) 推荐(0)
摘要: 题目大意:给定 N 个点和一些有向边,求是否能够将这个有向图的点分成两个集合,使得同一个集合内的任意两个点都有双向边联通。 题解:反向思考,对于没有双向边的两个点一定不能在同一个集合中。因此,构建一个图,若两点之间有边,则表示这两个点不能在同一个集合中。进行二分图染色判定即可,若是二分图,则满足条件 阅读全文
posted @ 2019-04-25 19:43 shellpicker 阅读(246) 评论(0) 推荐(0)
摘要: 题目大意:给定一个 N N 的矩阵,点有点权,现进行 k 次从左上角到右下角的寻路操作,对于每个点可以向右或向下走。每走到一个点,若之前没走过这个点,答案加上该点点权。求进行 k 次操作后,可以获得的最大点权和是多少。 题解:对于每个点都有一个权值,且权值只能被使用一次,同一个点最多可以经过 k 次 阅读全文
posted @ 2019-04-25 15:07 shellpicker 阅读(182) 评论(0) 推荐(0)
摘要: 题目大意:给定一个 N 个点的无向图,求至少删去多少个点可以使得无向图不连通。 题解:学习到了点边转化思想。 根据网络流的知识可知,一个网络的最小割与网络的最大流相等。不过最小割是图的边集,而本题则是删去节点。考虑将一个节点拆分成两个节点,即:入点和出点,对于同一个节点,在入点和出点之间的边权为 1 阅读全文
posted @ 2019-04-25 10:11 shellpicker 阅读(177) 评论(0) 推荐(0)