首页 > 其他分享 >CF1804F Approximate Diameter 题解

CF1804F Approximate Diameter 题解

时间:2023-03-18 14:24:38浏览次数:44  
标签:状态 题解 Approximate 合法 CF1804F 直径 考虑 dis

前言

在学校机房被学长推荐了这道题,听完正解后惊为天人...

简化版题面

给定一张无向连通图,定义直径 \(d=\max(dis(i,j)) \quad (i,j \in N)\) ,其中 \(dis(i,j)\) 指的是 \((i,j)\) 之间的最短距离。接下来会有 \(q\) 次加边操作,每次操作之间不独立,操作完成后输出当前无向图的直径。
数据范围 \(n,m,q \leq 10^5\)

正解

首先我们发现,求严格直径是不可做的,那么就必须考虑如何利用误差范围去简化问题。
不妨先考虑上界的运用,假设我们已经求出了直径 \(l\) ,端点为 \(S,T\) ,考虑图上任意一个点 \(p\) ,有这样的结论 \(max(dis(p,S),dis(p,T)) \geqslant \frac{l}{2}\)
考虑证明这个结论,因为 \(dis(p,S)+dis(p,T) \leq l\) ,所以二者的最大值至少占一半。
考虑运用这个结论,不妨让 \(p=1\) ,这样问题就转化成了求1到其他点最短路的最大值,这样就可以求出来一条至少大于 \(\frac{l}{2}\) 的路径。
之后我们把求出来的长度乘二,就得出了当前图的合法答案。

那下界怎么使用呢?
我们发现,这道题中只有加边的操作,所以图中直径的长度肯定是单调不上升的。
这样我们就可以求出当前图的合法直径,然后二分一个状态使得那个状态的合法直径是当前合法直径的一半,就说明这两个状态之间的所有状态中一开始的直径都是合法的。
之后我们再去求下一个状态的合法直径,用二分往后跳。

复杂度 \(O((n+m)\log(q))\)

标签:状态,题解,Approximate,合法,CF1804F,直径,考虑,dis
From: https://www.cnblogs.com/sky-light/p/17230542.html

相关文章

  • 【题解】ABC293E Sol
    题目大意给定整数\(A,X,M\),求\(\sum\limits^{X-1}_{i=0}A^i\)对\(M\)取模的值。数据范围:\(1\leA,M\le10^9\),\(1\leX\le10^{12}\)。题目分析直接算显然......
  • h5中audio无法播放问题解决
    H5页面中添加audio标签,通过调用play()方法进行播放音频,电脑可以正常听到音效,微信中打开没有声音。<audioid="audio"ref="audio"class="sound"><sourcesrc="@/st......
  • 【微电平台】-高并发实战经验-奇葩问题解决之旅
    作者:京东科技孙亮微电平台微电平台是集电销、企业微信等于一体的综合智能SCRMSAAS化系统,涵盖多渠道管理、全客户生命周期管理、私域营销运营等主要功能,目前已经有60+京东......
  • Centos7系统在开启进入系统报错:Give root password for maintenance(or type Control-D
    报错信息:在进入系统时,不能正常进入系统,出现了Giverootpasswordformaintenance(ortypeControl-Dtocontinue):的报错。 报错原因:1、在之前写入的/etc/fstab文件有......
  • 【题解】UOJ#37. [清华集训2014]主旋律
    我自己写的代码自己都看不懂。所以芝士一种船新做法,爱来自学弟,lc学长好工作。题意校内OJ的题面过于简洁,人话:给定一个有向的强连通图,问任意删边使得新图仍强连通的方......
  • 江南信息学2023第四周练习20230317 题解
    首先,通报批评上周抄袭题解的同学有:黄耿益,黄远鸿,博客提供题解不是让大家直接复制粘贴抄袭的,而是在大家不会做时提供思路和解决方案,可以抄写,但不允许直接复制粘贴抄袭,请养成......
  • conda 安装 rpy2 版本不匹配问题解决方法
    问题描述:Anaconda3(python3.8)安装rpy2(R4.0.4)时尝试使用condainstallrpy2安装,但是报错如下:UnsatisfiableError:Thefollowingspecificationswerefoundtobein......
  • Codeforces Round 851 (Div. 2) (CF1788) 题解
    CF1788AOneandTwo对于一个序列,题目要求蓝色部分的乘积等于绿色部分的乘积,因为序列中只有\(1\)和\(2\),所以我们只要蓝色部分和绿色部分的\(2\)的数量相等即可,使用......
  • 「题解」洛谷 P5644 [PKUWC2018]猎人杀
    题意:初始有\(n\)个人,每个人的权值是\(w_i\),假设这一轮剩余还没嘎掉的人总权值是\(s\),那么这一轮它有\(\frac{w_i}{s}\)的概率嘎掉。求\(1\)活到最后的概率是多少。......
  • AGC011 题解
    敬告各位:大佬魔怔那叫乐呵,如果实力不够还魔怔那叫小丑。这其实和洛谷灌水区是一个道理,现在灌水区不是流汗就是流汗。虽然有几个真正提问的。[AGC011A]AirportBus普及......