1 条题解
-
0
何老师 (root) LV 0 MOD @ 2025-06-09 15:53:52
设dp[i][j] 表示从1走到i 的时间 mod k=j 时的最短时间
则有答案为 dp[n][0]
对于边 u->v 的转移为(松弛操作)
[u,mod]=q.front();
for(int k=0;k<g[u].size();k++){
v=g[u][k],t=a[u][k];
if(dist[u][mod]+1<=t)
if(dist[u][mod]+1<dist[v][(mod+1)%K])
dist[v][(mod+1)%K]=dist[u][mod]+1;
else{
if(t<dist[u][t%K])
dist[u][t%K]=t;
}}
- 1