当前位置: 首页 > news >正文

CF1032F Vasya and Maximum Matching

CF1032F Vasya and Maximum Matching

图论、树上问题、DP、Ad-hoc


考虑最大匹配唯一意味着什么,注意到树一定是一个二分图,树的最大匹配即二分图最大匹配,最大匹配唯一意味着没有增广环。

因为树上没有环,所以增广环一定含 \(S\)\(T\),形如:

注意到如果存在长度 \(>3\) 的增广环,一定可以缩减为长度 \(=3\) 的增广环。形式化地,最大匹配唯一当且仅当对于一个最大匹配,不存在 \(u,v,w\in V\),使得 \((u,v)\) 为匹配边,\((v,w)\) 为非匹配边,且 \(w\) 没有匹配。

似乎还是不太能做,考虑 \(w\) 没有匹配意味着什么,发现只要有一个点有边相连却没有匹配就已经爆了,于是发现关键结论:树的最大匹配唯一当且仅当存在完美匹配

证明:

先证必要性,最大匹配唯一 \(\Rightarrow\) 存在完美匹配:

若不存在完美匹配,则必然有一个点 \(u\) 失配,考虑其相邻一点 \(v\)。若 \(v\) 有匹配,则出现增广环,最大匹配不唯一;否则可将 \((u,v)\) 改为匹配边,原匹配不是最大匹配。

再证充分性,存在完美匹配 \(\Rightarrow\) 最大匹配唯一:

将当前匹配看成一个最大流,则 \(S\) 没有出度,\(T\) 没有入度,二分图内部无环,因此不可能存在增广环。

证毕。

于是考虑 DP,设 \(f_{u,0/1/2}\) 表示 \(u\) 的子树中,\(u\) 没有保留的边 / \(u\) 没有匹配 / \(u\) 有匹配。

初始状态:

\[f_{u,0}=1 \]

转移:

\[\begin{cases} f_{u,0} &\leftarrow f_{u,0}(f_{v,0}+f_{v,2}) \\ f_{u,1} &\leftarrow f_{u,0}f_{v,2}+f_{u,1}(f_{v,0}+2f_{v,2}) \\ f_{u,2} &\leftarrow (f_{u,0}+f_{u,1})(f_{v,0}+f_{v,1})+f_{u,2}(f_{v,0}+2f_{v,2}) \end{cases} \]

答案:

\[f_{rt,0}+f_{rt,2} \]


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
typedef pair<ll,ll> pll;
template<typename T>
void chkmin(T &x,const T &y){x=min(x,y);}
template<typename T>
void chkmax(T &x,const T &y){x=max(x,y);}
const int inf=0x3f3f3f3f;
const ll infll=0x3f3f3f3f3f3f3f3f;
const int MOD=998244353;
const int N=300005;
int n;
ll f[N][3];
vector<int> G[N];
void dfs(int u,int fa){f[u][0]=1;for(auto v:G[u]){if(v==fa) continue;dfs(v,u);f[u][2]=((ll)(f[u][0]+f[u][1])*(f[v][0]+f[v][1])%MOD+(ll)f[u][2]*(f[v][0]+f[v][2]*2)%MOD)%MOD;f[u][1]=((ll)f[u][0]*f[v][2]%MOD+(ll)f[u][1]*(f[v][0]+f[v][2]*2)%MOD)%MOD;f[u][0]=(ll)f[u][0]*(f[v][0]+f[v][2])%MOD;}
}
int main(){scanf("%d",&n);for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);G[u].push_back(v),G[v].push_back(u);}dfs(1,1);printf("%lld\n",(f[1][0]+f[1][2])%MOD);return 0;
}
http://www.hskmm.com/?act=detail&tid=34338

相关文章:

  • ctf常见编码
  • WPS中Mathtype插件消失不见解决方法
  • 2025气泡膜机优质厂家推荐:瑞康机械,高效生产与定制服务兼备!
  • 音视频编解码全流程之用Extractor后Decodec - 实践
  • P8817 [CSP-S 2022] 假期计划 解题笔记
  • 2025年塑料托盘厂家推荐排行榜,网格川字/九脚/田字/双面塑料托盘,平板/吹塑/注塑/焊接/印刷/组装款/高矮脚/反川字/立体库托盘公司精选!
  • 物理感知 RTL 合成
  • 20243866牛蕴韬类和对象作业
  • 简单学习Typora
  • 2025年冷却塔厂家推荐排行榜,闭式/方形/工业/全钢/凉水/圆形/玻璃钢/防腐冷却塔公司推荐!
  • 在线p图(PhotoShop网页版)加滤镜,3步搞定唯美照片
  • 2025年变位机厂家推荐排行榜,焊接变位机,双轴变位机,高精度智能变位机公司推荐!
  • stable-virtio
  • 24_envoy_配置静态资源路由
  • Halcon基础——频域图像处理
  • GapBuffer高效标记管理算法
  • AT_toyota2023spring_final_g Git Gud
  • 实用指南:85-dify案例分享-不用等 OpenAI 邀请,Dify+Sora2工作流实测:写实动漫视频随手做,插件+教程全送
  • 2025年中医师承与确有专长培训机构推荐榜单:权威认证,传承经典,专业师资助力中医梦想!
  • 从数学概念到图像识别,再到 CNN 的联系
  • Agentic-Design-Patterns
  • 2025流量计厂家推荐弗罗迈测控,高精度耐腐蚀多种类选择!
  • 7.switch语句的简单应用
  • 在AI技术唾手可得的时代,挖掘电池管理工具的新需求成为关键
  • 计算语言学家在科技行业的职业发展指南
  • 新奇特:神经网络的集团作战思维,权重共享层的智慧 - 指南
  • 2025防水篷布优质厂家推荐:成硕达塑业多功能产品覆盖多领域!
  • 2025彩钢制品优质厂家推荐:腾越彩钢,一站式钢结构解决方案!
  • SQL中BOM递归查询语句
  • 近期应急响应靶场总结