0%

JBY-practice-2

Luogu P5304

求出所有点到特殊点的最短路和特殊点到所有点的最短路,枚举边更新答案

Luogu P7916

平面图最小割转最短路

k=2的情况下做法与bzoj1001狼抓兔子相同,否则考虑 \((0,1)\)\((1,0)\) 外边界,其数量肯定相等,且答案肯定是两两匹配构成的,且看得出来肯定两两之间不会有相交的匹配,那么就可以先对外边界求出两两最短路,然后用DP求匹配,复杂度为 \(O(((\sum k_i)nm\log(nm)+\sum k_i^3)\)

CF1163F(带临时单边修改的两点间最短路)

先求出最短路,若修改的不是最短路边,直接用经过那条边的最短路与原最短路比。

若修改的是最短路边,用不经过这条边的最短路以及原最短路的变化值比。

问题变为求不经过某条最短路上边的最短路,容易发现任意较短路径,其与最短路最多只有一段不同,那么求出经过其他某条边的极短路,更新最短路上不重叠的部分的答案,最后在统计最小的即可。

Luogu P7515

注意到若确定了第一行和第一列的 \(a_{i,j}\),那么剩下的 \(a_{i,j}\) 都可以由 \(b_{i,j}\) 求得,尝试由 \(a_{i,1}\)\(a_{1,i}\) 表示出 \(a_{i,j}\) 发现 \(a_{i,j}=C+(-1)^{i-1}a_{1,j}+(-1)^{j-1}a_{i,1}+(-1)^{i+j}a_{1,1}\),令 \(a_{1,j}=(-1)^jA_j\)\(a_{i,1}=(-1)^{i-1}B_i\),那么有 \(a_{i,j}=C-(-1)^{i+j}A_j+(-1)^{i+j}(B_i+B_1)\),不妨令 \(C_i=B_i+B_1\),那么容易发现问题转变为了一个差分约束问题,建图跑SPFA即可。

ARC056C

求出数列的前缀和,那么问题就变味了一个差分约束问题,约束为 \(a_r-a_{l-1}=\frac{r-l+1}2\)\(a_i-a_{i-1}\leq1\)。但是由于数据范围过大直接这么做会TLE,考虑换变量使约束形式改变得到性质更好的图。

不妨以-1代替原本的0,依然做前缀和,那么发现约束形式为 \(a_{l-1}=a_r\)\(\lvert ai-a_{i-1}\rvert=1\),依然用差分约束的思路建边,前者建0的双向边,后者建1的双向边,因为建图的特殊性,分析最短路过程,肯定有 \(a_i\neq a_{i-1}\),那么必然就可以满足 \(\lvert a_i-a_{i-1} \rvert=1\)。最后发现这个图只有边权为0和1的边。那么直接用bfs就可以完成最短路求。解。

Luogu P3530

题目给出的限制很差分约束,但是差分约束只能判断存在性,无法求出成绩种类。思考建图的过程,发现两个点的大小关系被严格约束当且仅当两个点可以互打,这引导我们思考强联通分量,发现一个强联通分量中最多种类为 \(max_{i,j}dis_{i,j}+1\),而不同强联通分量由于只知道大小关系,所以可以拉开很远不用管,求出强联通分量后将每一个的全部加起来就可以了。