本文共 2118 字,大约阅读时间需要 7 分钟。
题意: 给定四个点构成一个环,给出四个点之间的距离,让后从 2 2 2号点出发,最终回到 2 2 2号点,求经过的距离 > = k >=k >=k的最小距离。
思路: 由于从 2 2 2开始,最终在 2 2 2结束,所以我们考虑 2 ∗ m i n ( g [ 1 ] [ 2 ] , g [ 2 ] [ 3 ] ) 2*min(g[1][2],g[2][3]) 2∗min(g[1][2],g[2][3])作为基数,乘二的原因是要出去再回来。让后以这个数为基数,跑同余最短路就行啦。因为这是一个图,需要将原本 d i s [ i ] dis[i] dis[i]改成 d i s [ i ] [ j ] dis[i][j] dis[i][j]表示到 i i i这个点的时候,模 b a s e base base之后为 j j j的时候的最短距离,让后每次到 2 2 2号点的时候更新答案即可。
//#pragma GCC optimize(2)#include #include #include #include #include
转载地址:http://cplx.baihongyu.com/