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

题解:P8028 [COCI 2021/2022 #3] Cijanobakterije

树的直径类模板题。

题目大意

给你一个森林,你可以连若干条边,但是连边之后整个图仍然是一个森林。问你连完后的最大直径。

题目中的“直径”意思是连接的点的个数。

解题思路

为了使得能连接的点的个数最多,我们肯定要把每棵树的直径连在一起,这样就能使得答案最大。

所以,我们只需要对于每棵树求一遍直径,然后把答案累加起来就能够 AC 了。

树的直径还是简单提以下吧。可以使用树形 DP 求解。我们设 \(dp_{i,0}\) 为从 \(i\) 号点出发的最长链,\(dp_{i,1}\) 表示次长链(但是与最长链没有重复部分)。如果 \(dp_{son,0}+1>dp_{i,0}\),那么就能够更新最长链,把次长链更新成原来的最长链即可。如果 \(dp_{son,0}+1>dp_{i,1}\),就直接更新次长链。

AC 代码:

#include <iostream>
#include <vector>
#define int long long
using namespace std;bool vis[100005];
vector<int> g[100005];
int dp[100005][2];
int n,m;
int nowans = 0;
void dfs(int now,int fa){vis[now] = true;dp[now][0] = dp[now][1] = 1;for(auto it:g[now]){if(it==fa) continue;dfs(it,now);if(dp[it][0]+1>dp[now][0]){dp[now][1] = dp[now][0];dp[now][0] = dp[it][0]+1;}else if(dp[it][0]+1>dp[now][1]){dp[now][1] = dp[it][0]+1;}}nowans = max(nowans,dp[now][0]+dp[now][1]-1);
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>m;for(int i = 1;i<=m;i++){int u,v;cin>>u>>v;g[u].push_back(v);g[v].push_back(u);}int fans = 0;for(int i = 1;i<=n;i++){if(!vis[i]){//计算每棵树的直径,加和dfs(i,-114514);fans+=nowans;nowans = 0;}}cout<<fans;return 0;
}
http://www.hskmm.com/?act=detail&tid=22902

相关文章:

  • 2025 年水质测定仪厂家 TOP 企业品牌推荐排行榜,多参数,便携式,cod 快速,台式,污水,自来水,养殖,便携式总磷总氮,余氯总氯,废水水质测定仪公司推荐
  • 2025上海门头清洗服务公司权威推荐榜:专业高效服务口碑之选
  • 2025冷却塔厂家权威推荐榜:高效降温与耐用品质口碑之选
  • 使用IOT-Tree Server借助PPI协议连接西门子PLC S7-200 Smart
  • 2025公考培训机构权威推荐榜:实力师资与高效备考口碑之选
  • 2025微信机器人开发指南:API接口实战
  • Mapper.xml中SQL语句的用法示例
  • 实用指南:Redis 哈希槽解析
  • 解决vite构建下 disthtml 无法打开问题
  • UE RuntimeAudioImporter 插件推荐
  • 2025变电站架构制造厂家TOP企业品牌推荐排行榜,户外式变电站架构,户内式变电站架构,GIS 变电站架构,常规变电站架构,智能变电站架构公司推荐!
  • 使用虚幻引擎(UE5)制作开箱爆金币机制
  • 详细介绍:c++ 之多态虚函数表
  • 2025球墨铸铁管厂家TOP企业品牌推荐排行榜,k9球墨铸铁管,c25球墨铸铁管,c30球墨铸铁管,c级国标离心球墨铸铁管,c级供水球墨铸铁管,dn900球墨铸铁管公司推荐!
  • 10/2
  • 使用 VictoriaLogs 存储和查询服务器日志
  • 详细介绍:Git 基础 - 查看提交历史
  • PowerShell 提供程序和驱动器(七)
  • GreenHat 中文系列教程 2025.10 更新
  • 编译器细节:动态链接与静态链接行为分析
  • 2025热熔胶厂家 TOP 企业品牌推荐排行榜,书刊装订,珍珠棉,纸箱包装,环保,书本,试卷,票据,平摊,胶版纸,铜版纸热熔胶公司推荐!
  • cyberstrikelab-lab14
  • 使用虚幻引擎(UE5)制作开箱爆金币功能 - 详解
  • 2025 年自动喷砂机厂家 TOP 企业品牌推荐排行榜,从生产规模到技术创新,自动喷砂机推荐这十家公司!
  • 2025年光亮剂源头厂家最新推荐榜单:聚焦实力厂商,为电镀企业精选高口碑品牌
  • 深入解析:[linux仓库]深入解析Linux动态链接与动态库加载:理解背后的原理与技巧
  • AI行业应用:金融、医疗、教育、制造业的落地实践与技术创新 - 实践
  • 红色面纱
  • 创建 SQL Server 数据库
  • 2025上海殡葬一条龙服务优质推荐:福孝堂文化用品公司贴心之