题目:给出一些城市,从1出发,旅游一圈回到1,由于花费可能不够,所以选择一些城市打工,打工之前需要花费d买一个证,工资为c。选中的城市必须去工作一次,而且只能工作一次,问能不能完成旅行
比赛的时候,卡了很久,当时队友用SPFA+状态DP+堆栈写的,主要是把一点考虑错了
当时把C和D合并了,其实是不对的,因为首先是要购买证,然后才能工作,否则拿不到工资。
也就是先要判断够不够买证的钱D,然后才能拿到工资。
跪舔,先用Floyd预处理最短路n^3,然后状态DP,h*h*2^h,4S+,效率很低的做法
可以用队列,堆栈加速
[cpp]
#include
#include
#include