摘要: 分析 "网络流24题总结" 维护三个状态(x,y,k)表示当前坐标(x,y)和剩余流量k,dist(x,y,k)表示当前状态下的最小花费 到了每一个点分类讨论: 1.遇到油库,必须加满,以加满的状态继续转移 2.没有油库,设一个油库,并把油加满 3.没有油库,继续走 代码 最短路: cpp incl 阅读全文
posted @ 2019-03-26 19:35 birchtree 阅读(695) 评论(0) 推荐(0)
摘要: 分析 "网络流24题总结" 这题直接状压BFS也可以,不过可以把BFS改成SPFA,进一步优化 显然要维护三个状态:s,x,y,分别表示钥匙状态s(用一个二进制表示,第i位为1表示当前有第i个钥匙),和当前的x,y坐标,以这三个状态来分层 那么设dist(s,x,y)表示到达当前状态的最短时间 转移 阅读全文
posted @ 2019-03-26 19:26 birchtree 阅读(222) 评论(0) 推荐(0)
摘要: 分析 裸的最短路: 把错误集合状压成一个二进制,第i为为1表示有第i个错误 把这个状态x作为图上的节点编号,dist[x]表示转移到状态x需要的时间 显然初始状态为dist[$2^n 1$]最终的答案为dist[0] 转移的时候枚举每一个补丁,通过位运算判断补丁i是否能修复当前状态 代码 cpp i 阅读全文
posted @ 2019-03-26 19:21 birchtree 阅读(275) 评论(0) 推荐(0)