同余最短路

发布时间 2023-09-18 12:30:51作者: n!=n!

简述:

  完全背包,但物品质量很大(105左右),空间上第二维开不下,时间上狠狠超时,咋办呐,同余最短路咯(不小心学到的)

 

 



先简写

f[(i+aj)%m] = min( f[(i+aj)%m] , f[i] + aj )

类比最短路Dijkstra咋求的

d[y] = min( d[y] , d[x] + vx,y )

so x->i, y->(i+aj)%m, x->y建一条有向边,最后跑最短路,得到的f[]就是剩余系最小能组成值

 


 

吃饭了,具体原理后面再写