尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1375G Tree Modification 题解

CF1375G Tree Modification 题解
📅 发布时间:2026/6/20 8:52:52

\(\text{CF1375G Tree Modification 题解}\)

相当能引起思考的题目,这里给出两种方法。

首先这个操作相当于把一个节点的孙子及这个孙子的儿子拽上来作为它的儿子,这样的话从下往上合并一定是最优的。那么容易想到的是做一个 dp,定义 \(dp_{x}\) 表示 \(x\) 子树内形成了二叉树的结构所需最少步数,那么转移式子大概形如 \(dp_{fa_x}=\sum dp_{y\in son_x}+1\)。然后我们可以直接换根。令 \(1\) 为初始根,那么换根的时候发现对于 \(y\notin son_1\),令 \(t=fa_{fa_y}\),有 \(ans_y=dp_y+(ans_t-dp_y-1)-1\),换句话说树上任何两个距离为 \(2\) 的点作为根时答案是相等的,那么我们只需要取 \(dp_1\) 和 \(dp_{son_x}\) 就可以通过了。给出代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n;
vector<int>v[N];
int dp[N];
void dfs(int x, int fa) {for (int y : v[x]) {if (y == fa) continue;dfs(y, x);dp[fa] += dp[y] + 1;}
} 
int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n;for (int i = 1; i < n; i++) {int x, y;cin >> x >> y;v[x].push_back(y);v[y].push_back(x);}dfs(1, 0);int ans = dp[1];memset(dp, 0, sizeof dp);dfs(v[1].back(), 0);cout << min(ans, dp[v[1].back()]) << '\n';return 0;
}

这样暴力换根 dp 还是显得有点蠢了。既然我们在最后换根的时候有更好的性质,那么我们是不是有更好的方法解决这个问题呢?

考虑刚才发现的性质是和距离有关,那么考虑从距离的角度表述一次操作。发现一次操作相当于把 \(x\) 儿子距离根的距离减少 \(1\),把 \(x\) 子树内所有节点距离根的距离减少 \(2\),其它不变。关注这个特殊的 \(x\) 的儿子,发现只有它距离根的距离的奇偶性发生了改变,那么进行黑白染色,一次操作相当于改变一个点的颜色,最终要求只有一个点的颜色和其它点的不一样,于是直接黑白染色即可。仔细想想这个东西才是换根 dp 时那个性质的本质。

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n;
vector<int>v[N];
int a[2];
void dfs(int x, int fa, int o) {++a[o];for (int y : v[x]) {if (y == fa) continue;dfs(y, x, !o);}
} 
int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n;for (int i = 1; i < n; i++) {int x, y;cin >> x >> y;v[x].push_back(y);v[y].push_back(x);}dfs(1, 0, 0);cout << min(a[0], a[1]) - 1 << '\n';return 0;
}

相关新闻

  • 《算 设》学
  • [GESP202506 二级] 幂和数
  • *题解:P3586 [POI 2015 R2] 物流 Logistics

最新新闻

  • 2026年荆州市贵金属旧料回收优质靠谱实体门店精选五家 黄金回收铂金回收白银回收彩金回收真实探店测评清单及联系方式推荐 - 前途无量YY
  • 「指南」从零到一:Conda环境管理与实战避坑
  • 郑州黄金回收隐形套路大曝光,合扬无折旧费无手续费真实报价 - 奢侈品交易观察员
  • 2026 郑州靠谱黄金回收筛选标准,CCIC 认证合扬规避掉秤骗局 - 奢侈品交易观察员
  • 2026年惠州市贵金属旧料回收优质靠谱实体门店精选五家 黄金回收铂金回收白银回收彩金回收真实探店测评清单及联系方式推荐 - 前途无量YY
  • 碧蓝航线Alas自动化脚本:5分钟快速上手完整教程

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号