ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模拟测试20191105

2019-11-06 09:51:44  阅读:266  来源: 互联网

标签:一个点 测试 rdis 20191105 端点 非树边 最长 模拟 dis


不要停下来啊

$T1:你相信引力吗$

看错数据范围导致打了nlog还因为数据出锅导致re我也是醉了

用一遍单调栈可以求出以一个点为右端点且右端点大于等于左端点的答案

同理可以求出以一个点为左端点且左端点大于右端点的答案

然后根据最大值和次大值的个数讨论去重就好了

 

$T2:停不下来的团长奥尔加$

设$f_{i}$表示$1$到$i$的答案

有$f_{i+1}=f_{i}+1+(f_{i}-f_{p_{i}})+1=2\times f_{i}-f_{p_{i}}+2$

 

$T3:Lesson5!$

我和题解思路不太一样

首先建出原点,通过拓扑排序找出最长路树

同时处理出来源点到每个点的最长路dis和每个点到终点的最长路rdis

考虑一条非树边$(i,j)$,他们对会对$j$到$lca(i,j)$之间的点产生$dis_{i}+rdis{j}+1$的贡献,(如下图橙色的点)

那么我们对所有非树边按照$dis_{i}+rdis{j}+1$从大到小排序,这样每个点只需要被更新一次

如何保证更新一次参考 模拟$96$ [城市游戏]

最后找到值最小且编号最小的点就行了

标签:一个点,测试,rdis,20191105,端点,非树边,最长,模拟,dis
来源: https://www.cnblogs.com/mikufun-hzoi-cpp/p/11803305.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有