P1402 酒店之王(网络流)

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1402 酒店之王(网络流)相关的知识,希望对你有一定的参考价值。

P1402 酒店之王(网络流)

显然网络流,先建立超级源点连房间,超级汇点连菜,考虑一个人同时可以选房间和菜,但是贡献只算一次,所以对人拆点。两个点连1权,限制流量贡献就是1了。

然后喜欢的边权1,跑dinic即可。

code

	//2+200+200
	st=0,ed=505;
	scanf("%d%d%d",&n,&p,&q);
	for(int i=1;i<=p;i++) add(st,i,1);
	for(int i=1;i<=q;i++) add(i+n,ed,1);
	for(int i=1;i<=n;i++){
		add(i+2*n,i+3*n,1);
		for(int j=1;j<=p;j++){
			int x;scanf("%d",&x);
			if(x) add(j,i+2*n,1);
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=q;j++){
			int x;scanf("%d",&x);
			if(x) add(i+3*n,j+n,1);
		}
	}

以上是关于P1402 酒店之王(网络流)的主要内容,如果未能解决你的问题,请参考以下文章

P1402 酒店之王

P1402 酒店之王 最大流

洛谷P1402 酒店之王(二分图)

luogu P1402 酒店之王

洛谷 [P1402] 酒店之王

解题报告 『酒店之王(网络最大流 + 拆点)』