洛谷 P5471 [NOI2019]弹跳 KDtree

我们观察题目后发现这很明显是一道有关最短路的题,首先可以无脑打一个最短路模板上去。

36分

思考对于 h=1h=1 的数据,我们可以用线段树优化建图水过。

h=1 的话,我们用二维数据结构优化建图就行,这里我用的是 KDtree

被卡空间.jpg。边数太多了,我们无法把边全都建出来,又因为 Dij 的特性,一个点只会遍历一次和它相连的边,所以我们只需要用到边的时候再去找就行。

根据实现60~80不等

我们发现 Dij 每次是 1 .取出dis最小的点 2 .更新和它相连的点 3.删去该点。

这些 KDtree 本身都可以完成,直接在 KDtree 上维护就行了。

shu 里的变量

p,val,id,vis :该点对应的点的坐标, dis ,编号,是否取出过

l,r,mn,mx,tag :区间的坐标最大/小值, dis 的最大/小值,对区间打的标记。

100分

posted @   wljss  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示