2025.2.21 test

B

n 个点,每个点有一条出边,出边随周期改变,周期是 Ti2 的幂次,即在时刻 t 出边为 ci,tmodTi
q 次询问 t 时刻开始从 u 开始走 d 步的位置。n,q,Ti105,t,d1018

一般这种题自然想到倍增。如果我们设 fi,j,k(j<Ti) 表示 j 时刻从 i 出发走 2k 步到的位置。
但是这有个问题,如果 i 的值要用 u 更新的话必须要 TiTu,所以有很多值是没有的。
考虑给一条路径划分阶段,不妨用 a1a2a3 表示,Tai 满足递增, 中的 T 都小于上一个 Ta
而阶段数是不超过 logn 次的。我们用每个阶段的第一个位置的信息来解决这一个阶段。
不妨考虑求 fi,j,k 表示从 ij 时刻出发走了 2k 个跟 Ti 相同的点后走到哪,gi,j,k 表示走了多远。
考虑一次询问,称同层为值相同的所有点,倍增出在同层走最远到哪,然后跳到下一层,重复该过程。
考虑求 fi,j,k,不妨先求出 fi,j,0。按照 Ti 从小到大加入,求 fi,j,0 的过程跟一次询问一样于是解决了。

posted @   s1monG  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2024-02-21 2024.2.21 LGJ Round
点击右上角即可分享
微信分享提示