摘要: 首先能显然的想到一个方法:(s,a1,an)(a2,t,an)(s,b1,bn)(b2,t,bn)然后图中的边正常连,危桥流量1,正常桥流量为inf。但是这样即使满流了也会有一些问题,就是流是从a1到b2的。解决方法是交换b1和b2,再跑一遍,这样以来如果再次满流,那么就意味着a1,a2,b1,b2 阅读全文
posted @ 2018-02-08 22:26 lokiii 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 输出方案好麻烦啊 拆点,石头的连(i,i',1,1)(i,i',inf,0)表示可以取一次价值1,空地直接连(i,i',inf,0),对于能走到的两个格子(不包括障碍),连接(i',j,inf,0),然后连接s和起点,终点和t,流量为探测车的数量。然后跑最大费用最大流。 关于输出方案,dfs即可,每 阅读全文
posted @ 2018-02-08 15:03 lokiii 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 同方格取数问题:https://www.cnblogs.com/lokiii/p/8430720.html 记得把障碍点去掉,不连边也不计入sum cpp include include include include using namespace std; const int N=100005, 阅读全文
posted @ 2018-02-08 12:02 lokiii 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 因为都是正整数,所以当然取得越多越好。先把所有点权加起来,黑白染色后,s向所有黑点连流量为点权的边,所有白点向t连流量为点权的边,然后黑点向相邻的四个白点连流量为inf的边,表示不可割,这样一来,对于一条链上的s u v t,只能割掉u的点权或者v的点权,那么最小割就是用最小的代价是st分开,也就是 阅读全文
posted @ 2018-02-08 11:19 lokiii 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 参考:http://blog.csdn.net/w_yqts/article/details/76037315 把相同符号的连续数字加起来,合并后ans先贪心的加上所有正数,如果正数个数sum m,设计二元组(i,a[i])表示合并后序列i位置上值为a,记录前驱后继,塞进按绝对值排序的小根堆里。每次 阅读全文
posted @ 2018-02-08 09:53 lokiii 阅读(150) 评论(0) 推荐(0) 编辑