Luogu P14309 【MX-S8-T2】配对 题解 [ 蓝 ] [ 树形 DP ] [ 贡献转化 ] [ 分类讨论 ]

news/2025/10/28 13:25:58/文章来源:https://www.cnblogs.com/zhr0102/p/19170524

配对

巨大困难题,赛时只会了启发式合并的部分分。

观察匹配的路径,显然有一个结论:所有匹配的路径不会经过同一条边

所以可以先考虑不带修、\(n\) 为偶数的做法:对整棵树进行遍历,遍历到 \(u\) 的子树时如果遇到多个儿子中有多个未被匹配的儿子,则将他们自行进行匹配。如果未被匹配的节点有奇数个,则最后剩下哪一个都是一样的。因为此时匹配的贡献是他们到 \(u\) 的距离。

由上面的部分分做法,可以得到另外两个结论:

  • 对于同一颗子树内的节点,将他们之间自行匹配掉一定比与其他子树内的节点匹配更优。
  • 同一颗子树内,最多只存在一个未被匹配的点与其余子树内的点匹配。

和 P3177 相似的思想,我们可以从每条边的贡献的角度思考问题。发现如果 \(u\) 的子树内存在一个未被匹配的点,那么 \(u\to fa\) 的那条边就一定会被某条匹配的路径覆盖。

再将交换的操作转化,注意到它等效于将一个 \(c = 1\) 的点变为 \(c = 0\) 的点,同时又把一个 \(c = 0\) 的点变为 \(c = 1\) 的点,并且当匹配点为奇数时剩下的一个点也可以转化为将一个 \(c = 1\) 的点变为 \(c = 0\) 的点的操作。所以可以从反转颜色的角度去思考交换操作。

贡献会算了,由此就可以设计树形 DP 了。定义 \(dp_{u, i, j}\) 表示 \(u\) 子树内进行了 \(i\)\(1\to 0\) 的操作,\(j\)\(0\to 1\) 的操作。其中 \(i\in\{0, 1, 2\}, j\in \{0, 1\}\)

转移是简单的,不需要大量的分类讨论,类似树上背包对两个节点的 DP 值进行 merge。然后在出某个节点的时候,对子树内存在未匹配点的情况特判,增加 \(u\to fa\) 这条边的贡献即可。

\(n\) 为偶数的时候,答案就是 \(\min\{dp_{1, 0, 0}, dp_{1, 1, 1}\}\);当 \(n\) 为奇数的时候,答案就是 \(\min\{dp_{1, 1, 0}, dp_{1, 2, 1}\}\),因为有一个始终无法被匹配的点。

时间复杂度 \(O(n)\)

#include <bits/stdc++.h>
#define fi first
#define se second
#define eb(x) emplace_back(x)
#define pb(x) push_back(x)
#define lc(x) (tr[x].ls)
#define rc(x) (tr[x].rs)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ldb;
using pi = pair<int, int>;
const int N = 1000005;
ll n, oric[N], c[N], dp[N][3][2], f[3][2];
vector<pi> g[N];
void merge(int u, int v)
{memcpy(f, dp[u], sizeof(f));memset(dp[u], 0x3f, sizeof(dp[u]));for(int a = 0; a <= 2; a++)for(int b = 0; a + b <= 2; b++)for(int c = 0; c <= 1; c++)for(int d = 0; c + d <= 1; d++)dp[u][a + b][c + d] = min(dp[u][a + b][c + d], f[a][c] + dp[v][b][d]);
}
void dfs(int u, int fa, ll wf)
{if(oric[u] == 0) dp[u][0][0] = dp[u][0][1] = 0;else dp[u][1][0] = dp[u][0][0] = 0;for(auto eg : g[u]){int v = eg.fi, w = eg.se;if(v == fa) continue;dfs(v, u, w);c[u] ^= c[v];merge(u, v);}if(u != 1){if(c[u]){dp[u][0][0] += wf;dp[u][1][1] += wf;dp[u][2][0] += wf;}else{dp[u][0][1] += wf;dp[u][1][0] += wf;dp[u][2][1] += wf;}}
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;int cnt = 0;for(int i = 1; i <= n; i++){cin >> c[i];oric[i] = c[i];cnt += c[i];}for(int i = 1; i < n; i++){int u, v, w;cin >> u >> v >> w;g[u].push_back({v, w});g[v].push_back({u, w});}memset(dp, 0x3f, sizeof(dp));dfs(1, 0, 0);if(cnt & 1) cout << min(dp[1][1][0], dp[1][2][1]);else cout << min(dp[1][0][0], dp[1][1][1]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/948717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队项目1-团队展示选题-校园二手书交易平台

📘 校园二手书交易平台项目报告项目 内容这个作业属于哪个课程 [软件工程](首页 - 计科23级12班 - 广东工业大学 - 班级博客 - 博客园)这个作业要求在哪里 [作业要求](结对项目 - 作业 - 计科23级12班 - 班级博客 - …

2025年10月精益降本咨询公司推荐:实力榜横向对比

2025年10月,制造业利润被原材料波动、订单碎片化、能耗红线三面夹击,企业主搜索“精益降本咨询公司”时,往往带着同一串焦虑:方案能否真正落地、效益能否覆盖咨询费、团队能否听懂现场语言。工信部2024年度报告显示…

ROS2下利用遥控手柄控制瑞尔曼RM65-B机器人 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Debian使用记录

目前,我使用的是pop_os! 1.检查是否需要换国内源 sudo vi /etc/apt/sources.list 2.更新 sudo apt update sudo apt upgrade -y 3.安装vim sudo apt install vim 4.安装cuda nvidia-smi #查看版本 wget https://de…

2025年10月生产现场管理咨询公司推荐:五家对比评价指南

把工厂交给自己人还是交给外部顾问,是制造业老板每晚都在算的账。订单碎片化、原材料波动、熟练工流失,让“现场”成为利润流失的最大黑洞。工信部2024年抽查显示,60%以上中小企业现场OEE低于65%,库存周转天数比行…

2025年10月生产现场管理咨询公司推荐:五家口碑排行对比

把工厂交给自己人管,却还是被“交货拖、浪费多、现场乱”反复折磨,是不少制造业老板在2025年的真实写照。工信部抽样显示,六成以上中小企业现场5S停留在“墙上标语”,产线OEE低于65%,库存周转天数比行业均值多出1…

2025年10月生产现场管理咨询公司评测:五强榜单与选型要点

生产现场管理是制造企业降本、提效、稳质的“最后一公里”。2025年,工信部《制造业质量管理提升行动报告》指出,约62%的中小工厂仍被“5S不彻底、标准作业缺失、换型时间长”等现场问题拖累,产能利用率平均不足75%。…

2025年10月精益降本咨询公司排行:五家实战机构全评测

“订单利润被成本吃掉、库存周转慢、现场浪费看不见”——这是2025年制造业高管在季度经营分析会上出现频率最高的三类痛点。工信部《中小企业经营质量报告》显示,1-8月规模以上工业企业每百元营收成本仍处84.3元高位…

2025年10月采购管理咨询公司推荐:口碑榜对比指南

在供应链波动、原材料价格高企、合规要求趋严的2025年,企业采购负责人普遍面临“降本空间有限、交付风险陡增、数字化工具不会选”的三重夹击。工信部《制造业采购管理白皮书》显示,超过62%的中小制造企业尚未建立标…

2025年10月采购管理咨询公司推荐:排行榜与选择指南

把“采购降本”做成可量化的硬指标,是多数制造企业与成长型公司2025年最紧迫的议题。调研显示,原材料成本每降低1%,净利润可提升5%—8%,但超过六成企业仍靠经验砍价,缺少系统方法,导致议价空间逐年收窄、交付风险…

2025年10月研发管理咨询公司推荐:五强对比榜助力精准选型

2025年10月,当企业把“产品领先”写进战略,却苦于研发周期过长、成果转化率低、跨部门协同卡顿,寻找一家真正懂制造、懂数字化、懂中国团队特点的研发管理咨询公司,就成了研发总监和总经理的共性痛点。工信部2024年…

CSP2025考前恶补Ⅰ:DP

题单:AtCoder 的 Educational DP Contest:https://atcoder.jp/contests/dp A - Frog 1有 \(N\) 个台阶。每个台阶编号为 \(1, 2, \ldots, N\)。对于每个 \(i\)(\(1 \leq i \leq N\)),第 \(i\) 个台阶的高度为 \(h…

Oracle Data Guard 手动切换

Oracle Data Guard 手动切换Oracle Data Guard 手动切换指南 一、环境说明角色 数据库名 DB_UNIQUE_NAME 当前状态主库 testdb testdb PRIMARY备库 testst testst PHYSICAL STANDBY二、手动切换(Manual Switchover) …

2025年10月库存管理咨询公司推荐:服务榜排行与场景对比

库存高企、资金占压、呆滞料越清越多,是制造业与流通业共同的“隐形失血点”。当企业准备外聘专业力量时,往往面临“谁真懂行、谁真能落地”的选择焦虑:担心顾问只会PPT、担心方案水土不服、担心投入产出算不清。20…

2025年10月生产计划管理咨询公司推荐榜:五强口碑与实力排行

订单插单频繁、交付周期拉长、库存与产能利用率倒挂,是制造业计划部门的日常痛点。工信部2024年调研显示,六成以上中小制造企业因计划体系薄弱导致产能利用率不足75%,急单准时交付率低于50%。企业主在寻找外部顾问时…

2025年10月生产计划管理咨询公司推荐:权威榜单一比一看清差异

订单碎片化、交期缩短、库存高企,是制造业计划部门每天的“三座大山”。当ERP排程常卡壳、插单频繁、产能利用率不足75%时,企业主往往陷入“加人加机仍救火”的循环。政策层面,《“十四五”智能制造规划》把“柔性计…

2025年10月生产计划管理咨询公司推荐:榜单排名五强指标导向

“订单一多就乱、交期一紧就拖”——这是不少制造企业在2025年仍反复出现的场景。多品种小批量、急单插单频繁、产能瓶颈隐蔽,让生产计划成为经营堵点。工信部《制造业管理成熟度白皮书》指出,60%的产能利用率不足源…

微信机器人开发API | 个人快速接入

转发小程序 请求URL: http://域名地址/sendApplet 请求方式: POST 请求头Headers: Content-Type:application/json Authorization:login接口返回 参数: 参数名 必选 类型 说明 wId 是 string 登录实例标识 wcId …

OOP实验2

实验任务一: T.h源码:#pragma once#include<string>class T{public:T(int x=0,int y=0);T(const T &t);T(T &&t);~T();void adjust(int ratio);void display() const;private:int m1,m2;public:st…

2025年10月供应链管理咨询公司推荐:五强榜单评价全览

如果你正负责一家制造企业的运营,大概率会遇到这些场景:订单交付延迟、库存居高不下、采购成本一年高过一年、生产计划被客户临时变更反复打乱。工信部数据显示,超过六成制造企业因供应链协同低效导致产能利用率不足…