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

AcWing 4205:树的增边 ← 二分图 + 染色法

AcWing 4205:树的增边 ← 二分图 + 染色法
📅 发布时间:2026/6/18 13:20:56

​【题目来源】
https://www.acwing.com/problem/content/4208/

【题目描述】
给定一个 n 个节点的树。
树的节点编号为 1∼n。
请你为这棵树增加一些边,要求增边后的图形仍是二分图,并且不含重边和自环。
请问,最多可以增加多少条边。

【输入格式】
第一行包含整数 n,表示树的节点数量。
接下来 n−1 行,每行包含两个整数 a,b,表示节点 a 和节点 b 之间存在一条边。

【输出格式】
一个整数,表示可以增加的边的最大数量。

【输入样例】
5
1 2
2 3
3 4
4 5

【输出样例】
2

【数据范围】
前三个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤10^5,1≤a,b≤n。

【算法分析】
● 二分图的概念:如果无向图 G=(V, E) 的所有点可以分为两个集合 V1,V2,所有边都在 V1 与 V2 之间,且 V1,V2 的内部都没有边,则称 G 是一个二分图。

● 一个图是否为二分图,一般用“染色法”进行判断。染色法的核心思想非常直观:尝试用两种颜色对图中的所有顶点进行着色,并确保‌任何一条边两端的顶点颜色都不相同‌。如果能成功完成着色,则该图是二分图;否则,不是。

● 染色法的染色逻辑
(1)使用两种颜色:颜色 1 和颜色 2。
(2)若当前节点染色为 c,相邻节点必须染为 3^c(即 3-c)。这是因为,3^1=2,3^2=1,故通过异或运算可实现颜色切换。

● 染色法的算法流程通常基于 BFS 或 DFS 实现。
(1)选择一种颜色(如 1)作为起始颜色。
(2)从一个未访问的节点开始,将其染色,然后遍历其所有邻居。
(3)若邻居未染色,则将其染成与当前节点相反的颜色(如 2),并递归(DFS)或入队(BFS)处理。
(4)若邻居已染色,则检查其颜色是否与当前节点相反。若颜色相同,则说明存在奇环,该图不是二分图。

● 树结构天然是二分图
(1)无环性‌:树是无环连通图,因此不可能存在奇数环。
(2)层次结构‌:从任意根节点开始,奇偶层自然形成两个独立集合。
(2)可二染色性‌:树可以用两种颜色进行顶点着色,使得相邻顶点颜色不同。

AcWing 4205

● 由于树本身是二分图,节点可以染成两种颜色。设树的节点数为 n,其中一种颜色的节点数为 m,若保证增边后的图形仍是二分图,则最大可增加的边数为 m*(n-m)-(n-1)。其中,m*(n-m) 为完全二分图的最大边数 ,n-1 为树的边数。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int N=1e5+5,M=N<<1;
int e[M],ne[M],h[N],idx;
long long n,m;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}//Dye node u with color c
void dfs(int u,int c,int fa) {if(!c) m++;for(int i=h[u]; i!=-1; i=ne[i]) {int j=e[i];if(j==fa) continue;dfs(j,!c,u);}
}int main() {memset(h,-1,sizeof h);cin>>n;for(int i=1; i<n; i++) {int a,b;cin>>a>>b;add(a,b),add(b,a);}dfs(1,0,0);cout<<m*(n-m)-(n-1)<<endl;return 0;
}/*
in:
5
1 2
2 3
3 4
4 5out:
2
*/





【参考文献】
https://www.acwing.com/solution/content/162031/
https://blog.csdn.net/hnjzsyjyj/article/details/155323274
https://blog.csdn.net/weixin_51797626/article/details/122650456
https://www.acwing.com/solution/content/175783/
https://www.acwing.com/solution/content/128098/
https://www.acwing.com/solution/content/105874/
https://www.acwing.com/solution/content/246924/
 

​

相关新闻

  • 2025年评价高的速冻食品包装机最新TOP厂家排名
  • ai论文软件推荐:5款实用工具助你高效完成学术写作
  • 降ai率免费工具推荐:2025年实用工具盘点

最新新闻

  • ubuntu系统字体大小增加方案
  • 南京健身器材厂家供应,究竟该如何选择? - 资讯快报
  • TC3827锂离子电池充电控制器:CC/CV原理、电路设计与实战调试
  • 计算机毕业设计之食堂无忧:智能预约系统在校园餐饮管理
  • 终极XML编辑器指南:如何用XML Notepad高效处理XML文档
  • Pearcleaner:告别macOS应用残留困扰,智能清理释放磁盘空间

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 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 号