首页 > 其他分享 >[2022.11.02] 模拟赛 第四题

[2022.11.02] 模拟赛 第四题

时间:2022-11-03 15:34:18浏览次数:68  
标签:02 cnt 函数 节点 leq 答案 操作 2022.11 模拟

\(V\)

\(Problem\)

给定一棵 \(n\) 个点的树,初始每条边长度都为 \(1\),每次操作你需要选择一条边并令其长度增加 \(1\)。

给定 \(Q\) 次询问,每次给定一个数 \(K_i\),你必须恰好完成 \(K_i\) 次操作,求操作后的最短直径。

\(Scope\ Limitation\)

\(3\leq n\leq 2\times 10 ^ 5,1\leq a_i,b_i\leq n,1\leq Q\leq 2\times 10 ^ 5,0\leq K_i\leq 10 ^ {18}\)

\(Solution\)

首先找到树的中心,即直径的中点,但我们发现这个中点的位置可能在某个点上但也有可能落在某条边上。

为了解决这个问题,对于题目给定的任意一条边 \(x\) 和 \(y\),我们加入一个新的节点 \(z\),令 \(x\) 通过 \(z\) 与 \(y\) 相连。

这样,我们最后的答案就是 \(\frac{D}{2}\),其中 \(D\) 是这棵树的直径,也就是说最后要求的变成了半径,而每次操作也就相当于将一条边的长度增加 \(2\)。

这时候我们枚举一个点 \(u\),设最终的树以点 \(u\) 为中心,找到距离其最远的一个叶节点,设两者之间的距离为 \(R\),那对于这个中心点来说,要撑满 \(R\) 的半径,则要 \(\frac{R\times cnt - sum}{2}\) 次操作,其中 \(cnt\) 是叶节点的数量,\(sum\) 是点 \(u\) 到所有叶节点的距离和。

这不难理解,简单来说就是令 \(u\) 到每个叶子节点的距离都变成 \(R\),同时可以证明通过不断加 \(2\) 一定能让距离不足 \(R\) 的叶节点距离刚好变为 \(R\)。

那在这之后,对于一个以节点 \(u\) 为中心且值为 \(R+2x\) 的答案,撑满这个答案需要的操作次数即为 \(\frac{R\times cnt - sum}{2} +x\times cnt\),即每次对所有叶子操作一次。

同时又注意到中心一定不可能是叶节点,否则我一定可以通过移动令答案更优,所以 \(cnt\) 是一个定值,也就是说我们的斜率是一定的。

我们可以通过一个简单的换根 \(dp\) 求出不同节点的 \(R\) 以及初始的 \(C\),即撑满 \(R\) 需要的操作次数。

这时候我们会得到若干个函数,以操作次数为横轴,以最终的答案为纵轴,每个函数由两部分组成,第一部分是一条水平的直线,这代表着撑满最初 \(R\) 的若干次操作,之后是一个斜率确定的一次函数,大致形状如下:

A

我们将所有询问从小到大排序,同时将所有函数封装成一个二元组 \((R,C)\),并按照 \(R\) 排序。

我们记录一个 \(r\) 和一个 \(mx\),表示回答上一个询问的答案以及它最多可以覆盖到的操作次数。

更新的时候若 \(r \geq R_i\),则将函数 \(i\) 与当前答案进行比较,显然可以算出其在该询问下的最小答案以及其对应的最大操作次数,和 \(r\) 与 \(mx\) 进行比较,若小于 \(r\),则作为新的 \(r\) 和 \(mx\);若等于 \(r\),则让 \(mx\) 取最大值。

以上图为例,最开始我们加入函数 \(x\) 同时回答了 \(k_1\),在回答 \(k_2\) 的时候我们发现函数 \(x\) 的答案也即当前 \(r\) 在 \(k_2\) 下超过了 \(R_y\),这时我们将 \(y\) 加入讨论,比较后发现 \(y\) 在 \(k_2\) 的情况下一定是由于 \(x\) 的,且由于斜率不变,对于之后的所有 \(k\) 都会有 \(y\) 优于 \(x\),于是我们舍弃掉 \(x\),更新为 \(y\);到 \(k_3\) 的时候我们又发现 \(z\) 比 \(y\) 更优秀。

重复以上过程。

最后需要注意的是,\(R\) 的变化是不连续的,其只能在奇偶性相同的范围内进行变化,则有可能出现这样的情况,上一个询问中某个函数比上一个函数更优,但奇偶性变化后,另一个函数又更加优秀了。

针对这样的情况,我们把所有的函数分为初始的 \(R\) 是奇数与偶数分别进行上述计算,每个询问的答案取这两种情况结果的最小值即可。

标签:02,cnt,函数,节点,leq,答案,操作,2022.11,模拟
From: https://www.cnblogs.com/Defoliation-ldlh/p/16854591.html

相关文章

  • Hua Yu-2020-Toward Realistic 3D Human Motion Prediction with A Spatio-temporal C
    #TowardsRealistic3DHumanMotionPredictionwithASpatio-temporalCross-transformerApproach#paper1.paper-info1.1MetadataAuthor::[[HuaYu]],[[Xua......
  • for语句-九九乘法表-2022-11-03
    packagestructure;publicclassForDemo04{publicstaticvoidmain(String[]args){for(inti=1;i<10;i++){for(intj=1;j<=i;......
  • 20201302姬正坤第十二章学习笔记
    Linux第十二章——块设备I/O和缓冲区管理块设备I/O缓冲区读写普通文件的算法依赖于两个关键操作,即:get_block和put_block,这两个操作将磁盘块读写到内存缓冲区中。I/O缓......
  • 2022-11-03 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客即是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • 免费服务器分享20221103
    今天再次安装了免费服务器,来和大家分享一下。三丰云是一个提供免费云服务器的服务商,包括"免费虚拟主机"、“免费云服务器”。挺良心的,只不过需要大家发圈,但是功能实在......
  • 【2022.11.03】pytorch的使用相关
    Pytorch的使用相关,学习来源:https://www.bilibili.com/video/BV1Wv411h7kN/?p=6加载数据有两种方法,一种是torch.utils.data.Dataset,一种是torch.utils.data.DataloaderTe......
  • CSP2022 R2感冒记&高一上期中考试联合游寄
    本文中部分人名用mrfz中的材料代替/xyx10.15rt,感冒了,头有点昏。上午听教练讲考试注意事项,顺便加强%你赛数据(中午和lzh出去吃了馄饨。下午%你赛,最低预估分\(10\),最高......
  • 2022-11-03
    大级别:1D下跌结束,预期转2D下跌   中级别:黄色2H两波上涨,第一波级别40F,第二波级别10F。如果第二波级别还没扩大到至少40F,不背驰,等做多;如果第二波级别扩大到至少40F,背......
  • 2021CCPC(桂林)
    A.AHeroNamedMagnus签到题输出2x-1注意用到unsignedlonglongI.PTSD签到题G.OccupytheCities分析:考虑从左到右依次考虑pre表示当前1需要向前贡献多少......
  • 2022.11.2每日一题
    DaimayuanOnlineJudge-整齐的数组题目描述\(Polycarp\)有一个长度为\(n\)的数组\(a_1,a_2,...,a_n\)(\(n\)是偶数)。\(Polycarp\)还得到了一个正整数\(k\),他开......