【NOIP模拟赛】

mhy12345 学习了二分图匹配, 二分图是一种特殊的图, 其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边。图的“匹配”是指这个图的一个边集, 里面的边两两不存在公共端点。
匹配的大小是指该匹配有多少条边。二分图匹配我们可以通过匈牙利算法得以在 O(VE)时间复杂度内解决。
mhy12345 觉得单纯的二分图匹配算法毫无难度, 因此提出新的问题:
现在给你一个 N 个点 N-1 条边的连通图, 希望你能够求出这个图的最大匹配以及最大匹配的数量。
两个匹配不同当且仅当存在一条边在第一个匹配中存在而在第二个匹配中不存在。
【输入格式】
第一行两个数 T,P,其中 T 表示数据组数。
接下来每组数据第一行一个数 N
接下来 N-1 行每行两个数分别表示一条边。
【输出格式】
对于每组数据, 输出一行:
若p=1, 则一行一个数输出图的最大匹配
若p=2, 则一行两个数输出图的最大匹配以及最大匹配数量。

分析

这个是一道很好的树形动规的题目。

40分:可以直接跑一个二分图匹配的匈牙利算法。

100分:树形动规。动态规划方程很好推,注意精度溢出问题。

代码

欢迎转载,转载请注明出处!
原文地址:https://www.cnblogs.com/huihao/p/7742223.html