网络流建模训练

请提醒我补上数据范围

建图原则

先考虑如何暴力建图,再考虑合并优化

如果几个节点的流量来源去向都相同,可以合并

如果 \(u\to v\) 有一条 \(\inf\) 的边,且 \(u\)\(v\) 的唯一流量来源或 \(v\)\(u\) 的唯一去向,则可以合并

POJ 1149 pigs

pro

\(n\) 个猪圈,每个猪圈里初始时有若干头猪,一开始所有猪圈都是关闭的。

依次来了 \(m\) 个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪;每个顾客分别都有他能够买的数量的上限。

每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。

问总共最多能卖出多少头猪

sol

设一个虚拟超级源点,向,每个猪圈连猪数为容量的边,每个人猪圈向人连边

但是这样边数太多了

我们可以把连同一个人的猪圈看作一个点,然后这个点向人连边

如果后续的人用了没被合并过的猪圈,就由上一个人连向这个人(每个人都相当于一个大猪圈)

除了超源点连向猪圈的边外都是 \(\inf\)

但是还是很劣

所以开过的猪圈都可以合成大猪圈,不着急分配

考滤并查集维护,比较暴力的维护即可

跑一个最大流

洛谷 P1402 酒店之王

题目描述

XX 酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化。由于很多来住店的旅客有自己喜好的房间色调、阳光等,也有自己所爱的菜,但是该酒店只有 \(p\) 间房间,一天只有固定的 \(q\) 道不同的菜,每个房间只能住一位客人,每道菜也只能给一位客人食用。

有一天来了 \(n\) 个客人,每个客人说出了自己喜欢哪些房间,喜欢哪道菜。但是很不幸,可能做不到让所有顾客满意(满意的条件是住进喜欢的房间且吃到喜欢的菜)。

要怎么分配,能使最多顾客满意呢?

sol

房人菜建图,人拆成两个点,用 \(1\) 边链接

跑最大流

luogu 2754 家园

pro

[CTSC1999] 家园 / 星际转移问题

题目描述

由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。

现有 \(n\) 个太空站位于地球与月球之间,且有 \(m\) 艘公共交通太空船在其间来回穿梭。每个太空站可容纳无限多的人,而太空船的容量是有限的,第 \(i\) 艘太空船只可容纳 \(h_i\) 个人。每艘太空船将周期性地停靠一系列的太空站,例如 \((1,3,4)\) 表示该太空船将周期性地停靠太空站 \(134134134\dots\)。每一艘太空船从一个太空站驶往任一太空站耗时均为 \(1\)。人们只能在太空船停靠太空站(或月球、地球)时上、下船。

初始时所有人全在地球上,太空船全在初始站。试设计一个算法,找出让所有人尽快地全部转移到月球上的运输方案。

sol

依据时间建分层图,然后

posted @ 2024-07-13 10:49  exut  阅读(10)  评论(0编辑  收藏  举报
Title