[ABC309D] Add One Edge 题解

news/2025/2/14 8:17:03/

这道题非常简单啊!

我们考虑以下一条最短路的构成,一定是 1 1 1 所在的连通块的一条 1 1 1 x x x 的路径,一条 x x x y y y 的边(即我们添加的那条边),一条 n 1 + n 2 n_1+n_2 n1+n2 所在的连通块的 y y y n 1 + n 2 n_1+n_2 n1+n2 的路径。

显然三个区域并不关联,我们贪心地让三个最大。

也就是说吗,我们找一条 1 1 1 所在的连通块的最长路,再找一条 n 1 + n 2 n_1+n_2 n1+n2 所在的连通块的最长路,答案即为两者之和加一。

由于需要跑 BFS 最短路,时间复杂度为 O ( n + m ) O(n+m) O(n+m)

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const LL N=2e6+5;
LL n1,n2,m,x,y,dis[N],mn,mn2;
vector<LL>v[N];
queue<LL>q;
void bfs(LL x)
{while(!q.empty())q.pop();q.push(x);while(!q.empty()){LL t=q.front();q.pop();for(LL i:v[t]){if(dis[i]>dis[t]+1){dis[i]=dis[t]+1;q.push(i);}}}
}
int main()
{scanf("%lld%lld%lld",&n1,&n2,&m);for(int i=1;i<=m;i++){scanf("%lld%lld",&x,&y);v[x].push_back(y);v[y].push_back(x);}memset(dis,127,sizeof(dis));dis[1]=0,dis[n1+n2]=0;bfs(1),bfs(n1+n2);for(int i=2;i<=n1;i++)mn=max(mn,dis[i]);for(int i=n1+1;i<n1+n2;i++)mn2=max(mn2,dis[i]);printf("%lld",mn+mn2+1);
}

http://www.ppmy.cn/news/830321.html

相关文章

Duplicate keys detected: ‘0‘. This may cause an update error.

问题 vue报错 Duplicate keys detected: ‘0‘. This may cause an update error. 原因 <div v-for“(item,id) in items” :key"id”>{{item.name}} </div><div v-for“(item,id) in items” :key"id”>{{item.address}} </div>:key重…

wegame导致win10无限重启问题解决

在打完LOL时&#xff0c;关机忘了关Wegame&#xff0c;可能会导致电脑无限重启&#xff0c;如下图&#xff1a; 解决办法&#xff1a;参考这篇教程 http://www.win7999.com/news/266671215.html

关于Wegame页面空白的问题解决

前言 前几天帮亲戚家装电脑系统,装好后发现 wegame 所有页面都不能正确加载(全部是空白页面),很神奇,在网上找了很多种解决办法都没有效果,后来不过细心的我发现360浏览器一直提示我证书不安全过期,我就想到了,wegame页面也是浏览器页面,是不是也是这个问题导致的,所以现在只需…

vs2019下载和更新速度非常慢的解决方案

网上找的最有用的方法&#xff0c;留个笔记。 原文链接&#xff1a; https://www.cnblogs.com/boxrice/p/11670444.html --------------------------------------------------------------------- 修改host。【本人亲测有效果&#xff0c;速度从5kb到5M左右&#xff0c;但是…

wegame与客户端服务器连接中断95,wegame连接服务器失败

wegame连接服务器失败的解决方法是&#xff1a; 1、按下键盘上的WinR键&#xff0c;呼出运行菜单&#xff0c;在运行菜单中输入“CMD”打开命令符&#xff1b; 2、接下来&#xff0c;在这种情况下&#xff0c;应该首先清空电脑内的DNS缓存。打开命令字符输入&#xff1a;ipconf…

Win11系统更新后网络速度变的很慢怎么办?

Win11系统更新后网络速度变的很慢怎么办&#xff1f;有用户将自己的电脑系统升级到了Win11之后&#xff0c;出现了一些问题。电脑在使用中出现了网络速度变慢的情况。而且其它的设备在连接网络后速度是正常的&#xff0c;那么这个问题要怎么解决&#xff1f;来看看以下的方法分…

Windows环境搭建WeGame饥荒专用服务器(详细版)

Windows环境搭建WeGame饥荒专用服务器 前言饥荒专用服务器获取cluster_token令牌注册许可证书文件配置路径配置根目录cluster.ini文件配置 地面服务器&#xff08;Master&#xff09;地面server.ini文件配置 洞穴服务器&#xff08;Caves&#xff09;洞穴server.ini配置 模组的…

使用Linux系统IO多路复用中eopll创建基于TCP通信协议的多人聊天室

一.1.搭建好TCP的通信模型 2.创建红黑树根节点 3.将套接字事件添加到红黑树中&#xff0c;使其被监听 4.当套接字事件发生&#xff0c;表示有客户端连接&#xff0c;将连接事件加入到红黑树节点当中 5.每当连接事件发生时&#xff0c;表示客户端发送信息到服务器 6.每当有事件准…