摘要: 对于原有边,流区间是(1,inf),按着原边连,然后再连(s,i,(0,inf)),(i,t,(0,inf))表示任意位置进出雪场 按着这个建出新图 然后最小流的方法是先跑可行流,设ans为(t,s,(0,inf))的流量,然后取消这条边,跑从原来的t s的最大流为ans2,答案就是ans ans2 阅读全文
posted @ 2019-04-27 22:16 lokiii 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 据说正解是有上下界最小流,但是这种1e5的玩意问什么要跑网络流啊…… 贪心即可,注意一点是可以有多条路径经过一条边…… 以1为根,设d[u][0/1]为u到父亲的边是向下/向上,g记录这个点儿子中不能抵消且和它的d相同(同方向)的点个数,这里的抵消是一个0和一个1可以凑一条路径直接加进答案里,在df 阅读全文
posted @ 2019-04-27 21:28 lokiii 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 每条边流量有下界有费用,很显然是有上下界有源汇最小费用最大流 连边(s,1,(0,inf),0),(i,t,(0,inf),0),表示从1出发inf次从每个点结束inf次 连边(i,j,(1,inf),v[i][j]),表示ij之间有剧情的话就至少走一次,每次走花费v[i][j]时间 然后套有上下界 阅读全文
posted @ 2019-04-27 17:23 lokiii 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 连有上下界的边(ss,i,(0,m),0),(i',t,(0,m),0),表示从任意点开始和结束 连(i,j,(0,m),d[i][j]),表示可以买票飞过去 连(i,i',(v[i],v[i]),0),表示这条边会流固定v[i]个人 连(s,ss,(m,m),0),表示限制m个人 然后跑有上下界有 阅读全文
posted @ 2019-04-27 17:04 lokiii 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 最大值最小,所以考虑二分 |Σaij Σbij| include include include using namespace std; const int N=505; int n,m,ll,rr,a[N][N],sh[N],sl[N],h[N],cnt,le[N],d[N],s,t; stru 阅读全文
posted @ 2019-04-27 10:44 lokiii 阅读(140) 评论(0) 推荐(0) 编辑