摘要: 多源最短路 顾名思义,我们开始有多个源头,然后跑最短路。 其中的 \(dis\) 数组记录的是该点到任意源点的最短距离。 然后这道题就迎刃而解了,我们枚举路径, 对于路的端点找 \(pre\) 数组,对答案取 \(min\) 即可。 code: #include <bits/stdc++.h> #d 阅读全文
posted @ 2021-08-12 20:30 zJx-Lm 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 裸的线段树,这里不再讲方程的转移实现,主要证明一下按照和排序的正确性。 对于 \(j\) 我们希望 \(i\) 再其的前面。格式化的,对于 \(a_{i}\leq b_{j}\) 且 \(b_{i}\leq a_{j}\) ,我们期望 \(i\) 排在 \(j\) 的前面。 为什么要 \(b_{i} 阅读全文
posted @ 2021-08-12 20:20 zJx-Lm 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 一道扩欧板子。实际上就让我们解 \(n\) 个 \(ax+by=c\) 形式的方程,方程有解当且仅当 \((a,b)|c\)。 再回忆一下扩欧吧 对于一个扩欧方程 ,我们解的答案仅是满足 \(ax+by=(a,b)\) 形式的,要想转变为上述形式,等式左右同除 \((a,b)\) 再乘 \(c\) 阅读全文
posted @ 2021-08-12 19:58 zJx-Lm 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 从DP到组合数到DP套组合数再到放弃... 神仙能想出来的思路... 我们设 \(dp_{i,j,{0/1},{0/1}}\) 表示长度为 \(i\) 的序列在不大于 \(j\) 步被消完的方案数,其中左边的 \(0/1\) 表示左边是否有边界(比当前序列的所有数都大或整个序列的边界),右边同理。 阅读全文
posted @ 2021-08-12 19:31 zJx-Lm 阅读(52) 评论(1) 推荐(0) 编辑