Loading

简单图论题 - P2371,BZOJ 4773,P1119,P5994

P2371 墨墨的等式

经典同余最短路。长得像个完全背包,但数据范围很大。

可以发现,若 \(xa_i+y\) 能被凑出来,那么 \(\forall k\in [0,+\infty),(x+k)a_i+y\) 也能被凑出来。于是我们找到 \(mn=\min_{1\le i\le n} a_i\),然后建 \(n\) 个点 \(0\sim (mn-1)\),并对于所有 \(u\in [0,mn),i\in [1,n]\),将 \(u\)\((u+a_i)\bmod mn\) 之间连一条边权为 \(a_i\) 的边。以 \(0\) 为源点跑单源最短路,得到的 \(dis_u\) 就是当 \(y=u\) 时,最小的 \(x\),此时 \([1,lim]\) 中能被凑出来的数的个数就是:

\[\lfloor \frac{lim-dis_u}{mn}\rfloor+1 \]

将原问题差分成 \([1,r]-[1,l-1]\) 即可,时间复杂度 \(\mathcal{O}(nV\log(nV))\)

bzoj4773 负环

倍增处理邻接矩阵即可,\(\mathcal{O}(n^3\log n)\)

P1119 灾后重建

Floyd 的过程中,我们实际上是枚举了一个中转点,并用其它点到中转点的距离更新最短路。所以按时间顺序枚举中转点即可。

P5994 [PA2014] Kuglarz

好题!可以发现我们若知道 \([x,y)\)\([y,z)\) 的奇偶性,那么我们就知道了 \([x,z)\) 的奇偶性。也就是,我们要用最小的代价使得所有点连通,所以求出最小生成树即可。

posted @ 2021-11-19 11:20  Alan_Zhao_2007  阅读(50)  评论(0编辑  收藏  举报