2018年2月24日训练日记

emmm好几天没写训练日记了有点难受,虽然也没看多少东西,比赛也基本没参加...

今天就继续集训未结束的内容:二分图

于是去饶齐大佬博客里翻:二分图匹配

基础知识(by 饶齐):

给定一个二分图G(无向图),在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配.
选择这样的边数最大的子集称为图的最大匹配问题(maximal matchingproblem)
如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配。
如果该二分图的每条边都有一个权值且存在完备匹配,那么我们要找出一个所有边权值和最大的完备匹配的问题叫做二分图的最优匹配问题。
二分图的最小覆盖数:在二分图中选取最少数目的点集,使得二分图任意一边都至少有一个端点在该点集中。这个点集的大小是二分图的最小覆盖数,且二分图的最小覆盖数==二分图的最大匹配数
二分图的最大独立集:在二分图中选取最多数目的点集,使得该点集中的任意两点在二分图中都不存在一条边相连。这个点集就是二分图的最大独立集。且二分图的最大独立集大小==|G|(二分图顶点数) - 二分图最大匹配数
DAG的最小路径覆盖:即在DAG图中寻找尽量少的路径,使得每个节点恰好在一条路径上(不同的路径不可能有公共点)。注意:单独的节点也可以作为一条路径。

DAG最小路径覆盖解法如下:把所有节点i拆为左边点集的i和右边点集的i’,如果DAG图中有i到j的有向边,那么添加一条二分图的i到j’的无向边。最终DAG的最小路径覆盖数==DAG图的节点数n - 新二分图的最大匹配数m。注意:该由原DAG图构建的新二分图的最大匹配数m<=n-1(画图试了下不难想)

有向图是否存在有向环覆盖?把有向图的所有节点i拆为左边点集的i和右边点集的i’,如果有向图中有i到j的有向边,那么添加一条二分图的i到j’的无向边。最终如果新二分图的最大匹配数m==有向图的节点数n,那么说明该有向图的所有节点能被正好1个或多个不相交(没有公共节点)的有向环覆盖。
原理类似于DAG的最小路径覆盖的解释,因为每个节点都能找到一个后继节点继续往下一直走,所以必然原来有向图存在环。又因为在一个可行的最大匹配中,每个节点只有一个后继,所以必然存在不相交的有向环覆盖。

有向图的最优有向环覆盖:在有向图中找到1个或多个点不想交的环,这些环正好覆盖了有向图的所有节点且这些环上边的权值最大。本问题解法:把有向图的所有节点i拆为左边点集的i和右边点集的i’,如果有向图中有i到j的有向边,那么添加一条二分图的i到j’的无向边。最终计算二分图的最优完美匹配即可,该二分图的最优完美匹配的权值和就是有向图的最优有向环覆盖的权值和。

codeforces比赛:这次状态特别差。。。ab都错了6次,最后也只做出这俩。。。

cd基本上没来得及看

cd都很简单  c注意k>n就行   d直接暴力就行(然而INF必须取1e9 ,大于1e9就WA on test 1(不要问为什么,我不知道))

e是个双端队列或dp。。。学长用dp+rmq过得(原话):

考虑到第i位置时以第i个为结尾的连续的c个山还是不删其中的最小,dp[i][0/1]表示到i删还是不删的最大删去的和,如果不删就有i-1转移到,删就由i-c转移到,然后rmq处理一下区间最值。

虽然没看rmq  但是听学长说不难。。。学长这次五道题都是1A。。厉害啊

我要深绿色了

过个年过成傻子了。。。明天开始练练手。。。啊啊啊(作业还没写)

这就是十几天不练习的后果。。。。惨痛的教训。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值