BZOJ2612 [Poi2003]Sums
2019-04-14 21:09发布
生成海报
任取一个物品,假设其体积为V,那么我们可以在模V的意义下做背包,f[i]表示对于模V得i的物品,当体积>=f[i]时能被表示出来
那么就可以跑最短路了
不妨取体积最小那个,dijkstra的话理论复杂度是(5000*50000)logn,但是跑的飞起
事实上我们可以取最大那个,然后令f[i]表示表示对于模V得i的物品,当体积>=f[i]*V时能被表示出来
这样的话边权都为0或者1,那么我们可以01bfs,理论复杂度(5000*50000),但是跑不过
dijkstra:
#include
#include
#include
#include
#include
#include
#include
#include
#include
01bfs:
#include
#include
#include
#include
#include
#include
#include
#include
#include
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮