随笔分类 - 图论--Dijkstra
摘要:"传送门" 首先这个题目显然就是先求出所有的 $border$,问题转化成一个可行性背包的问题 一个方法就是同余类最短路,裸跑 $30$ 分,加优化 $50$ 分 首先有个性质 $border$ 分成的等差数列的个数不超过 $log$ 和回文树的性质的证明类似~~瞎画图一下就行了~~ 我们注意到可以
阅读全文
摘要:题面 "传送门" Sol 我们可以考虑每种$rank$的点$u$会被哪些点$v$感兴趣 如果$dis[u][v] define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace
阅读全文
摘要:题面 "传送门" Sol 先正反两遍$Dijsktra$算出经过某个点的$S$到$T$的最短路条数$F$ 满足条件一就是要满足$F(A)+F(B)=F(T)$ 条件二 标算比较简单 直接$bitset$存储不能到达它的和它不能到的点 然后开$map$把所有相同的$F(B)$变成$bitset$ 然后
阅读全文
摘要:题面 "传送门" Sol 走到一个点的前提是所有的影响它的点都走到,并且它的时间为那些点的时间$max$与自己的最短路的$max$ 考虑$Dijkstra$ 每次松弛时候,把它影响到的点的防护罩减$1$ 如果某个点没有后继影响它的节点就丢到大根堆内 然后这个继续松弛 cpp include defi
阅读全文
摘要:题面 "传送门" Sol 巧妙的建图+$Dijkstra$ 考虑把边看成点,那么显然暴力建图的边数是$m^2$的 考虑优化 把$max(a, b)$变成$a+max(b a,0)$ 把每个点连出的边按权值从小到大排序 每个边向后面的边连$b a$, 后面向前面连$0$ 连向它的边向连出去的边连$a$
阅读全文
摘要:题面 "传送门" Sol 分别按$X$轴,$Y$轴从小到大排序,相邻两个点建边权为$\Delta x$或$\Delta y$的边 然后跑$Dijkstra$ cpp include define RG register define IL inline define Fill(a, b) memse
阅读全文
摘要:题目 "传送门" Sol 离线+分治+$djikstra$ 每次把网格图分成两部分 如果起点和终点分隔两边,那么它一定会经过中轴线 枚举中轴线上的点跑$dijkstra$ 然后处理询问,递归处理起点终点在一起的询问 cpp include define RG register define IL i
阅读全文

浙公网安备 33010602011771号