摘要: 因为是无向图,所以从1到2再到3等于从2到1和3。用拆点来限制流量(i,i+n,1),然后连接(s,2+n,1),(1,t,1),(3,t,1),对于原图中的边连接(x+n,y,1)(y+n,x,1),跑一遍dinic看答案是否为2即可。 阅读全文
posted @ 2018-01-31 18:42 lokiii 阅读(205) 评论(0) 推荐(0) 编辑
摘要: ~~在spoj上用题号找题就已经是手动二分了吧~~ 把1作为汇点,k个要入网的向t连流量为1的边,因为最小颜色数等于最大边流量,所以对于题目所给出的边(u,v),连接(u,v,c),二分一个流量c,根据最大流是否等于k来调整上下界。 cpp include include include inclu 阅读全文
posted @ 2018-01-31 15:55 lokiii 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 不重叠最短路计数。 先弗洛伊德求一遍两两距离(其实spfa或者迪杰斯特拉会更快但是没必要~~懒得~~写),然后设dis为st最短距离,把满足a[s][u]+b[u][v]+a[v][t]==dis的边(u,v)连流量为1的边,表示只能走一次。注意这里a数组是弗洛伊德之后的,b是边的原长,然后跑一边最 阅读全文
posted @ 2018-01-31 11:36 lokiii 阅读(154) 评论(0) 推荐(0) 编辑