【NOIP2016】天天爱跑步
1|0#261. 【NOIP2016】天天爱跑步
小C同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。
这个游戏的地图可以看作一棵包含 nn 个结点和 n−1n−1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从 11 到 nn 的连续正整数。
现在有 mm 个玩家,第 ii 个玩家的起点为 SiSi,终点为 TiTi。每天打卡任务开始时,所有玩家在第 00 秒同时从自己的起点出发,以每秒跑一条边的速度,不间断地沿着最短路径向着自己的终点跑去,跑到终点后该玩家就算完成了打卡任务。(由于地图是一棵树,所以每个人的路径是唯一的)
小C想知道游戏的活跃度,所以在每个结点上都放置了一个观察员。在结点 jj 的观察员会选择在第 WjWj 秒观察玩家,一个玩家能被这个观察员观察到当且仅当该玩家在第 WjWj 秒也正好到达了结点 jj。小C想知道每个观察员会观察到多少人?
注意:我们认为一个玩家到达自己的终点后该玩家就会结束游戏,他不能等待一段时间后再被观察员观察到。即对于把结点 jj 作为终点的玩家:若他在第 WjWj 秒前到达终点,则在结点 jj 的观察员不能观察到该玩家;若他正好在第 WjWj 秒到达终点,则在结点 jj 的观察员可以观察到这个玩家。
输入格式
从标准输入读入数据。
第一行有两个整数 nn 和 mm。其中 nn 代表树的结点数量,同时也是观察员的数量,mm 代表玩家的数量。
接下来 n−1n−1 行每行两个整数 uu 和 vv,表示结点 uu 到结点 vv 有一条边。
接下来一行 nn 个整数,其中第 jj 个整数为 WjWj,表示结点 jj 出现观察员的时间。
接下来 mm 行,每行两个整数 SiSi 和 TiTi,表示一个玩家的起点和终点。
对于所有的数据,保证 1≤Si,Ti≤n1≤Si,Ti≤n,0≤Wj≤n0≤Wj≤n。
输出格式
输出到标准输出。
输出 11 行 nn 个整数,第 jj 个整数表示结点 jj 的观察员可以观察到多少人。
样例一
input
output
explanation
对于 11 号点,W1=0W1=0,故只有起点为 11 号点的玩家才会被观察到,所以玩家 11 和玩家 22 被观察到,共 22 人被观察到。
对于 22 号点,没有玩家在第 22 秒时在此结点,共 00 人被观察到。
对于 33 号点,没有玩家在第 55 秒时在此结点,共 00 人被观察到。
对于 44 号点,玩家 11 被观察到,共 11 人被观察到。
对于 55 号点,玩家 11 被观察到,共 11 人被观察到。
对于 66 号点,玩家 33 被观察到,共 11 人被观察到。
样例二
input
output
限制与约定
每个测试点的数据规模及特点如下表所示。提示:数据范围的个位上的数字可以帮助判断是哪一种数据类型。
测试点编号 | nn | mm | 约定 |
---|---|---|---|
1 | =991=991 | =991=991 | 所有人的起点等于自己的终点,即 Si=TiSi=Ti |
2 | |||
3 | =992=992 | =992=992 | Wj=0Wj=0 |
4 | |||
5 | =993=993 | =993=993 | 无 |
6 | =99994=99994 | =99994=99994 | 树退化成一条链,其中 11 与 22 有边,22 与 33 有边,……,n−1n−1 与 nn 有边 |
7 | |||
8 | |||
9 | =99995=99995 | =99995=99995 | 所有的 Si=1Si=1 |
10 | |||
11 | |||
12 | |||
13 | =99996=99996 | =99996=99996 | 所有的 Ti=1Ti=1 |
14 | |||
15 | |||
16 | |||
17 | =99997=99997 | =99997=99997 | 无 |
18 | |||
19 | |||
20 | =299998=299998 | =299998=299998 |
时间限制:2s2s
空间限制:512MB512MB
下载
2017-04-06
蒟蒻一只,只会用树刨求lca(貌似倍增也会),tarjan就不会了。
由于我用数据结构维护子树的差分和是nlogn的,lca复杂度不高于nlogn即可。
参照:http://www.cnblogs.com/shenben/p/6246450.html
__EOF__

本文链接:https://www.cnblogs.com/shenben/p/6672273.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术