萌新求助网络流题目
  • 板块学术版
  • 楼主daduoli
  • 当前回复31
  • 已保存回复31
  • 发布时间2023/5/10 07:02
  • 上次更新2023/10/23 16:12:34
查看原帖
萌新求助网络流题目
107154
daduoli楼主2023/5/10 07:02

为什么狼和羊的故事建的边是双向边,方格取数问题建的是单向边(不是指反向边)。 狼和羊的故事

for(int i=1;i<=n;++i) {
	for(int j=1;j<=m;++j) {
		scanf("%d",&col[i][j]);
		if(col[i][j]==1) adline(S,(i-1)*m+j,inf);
		else if(col[i][j]==2) adline((i-1)*m+j,T,inf);
		if(col[i][j]!=2)
		for(int q=0;q<4;++q) {
			int xx=i+dx[q];
			int yy=j+dy[q];
			if(xx<1||yy<1||xx>n||yy>m||col[xx][yy]==1) continue;
			adline((i-1)*m+j,(xx-1)*m+yy,1);
		}
	}
}

方格取数

for(int j=1;j<=m;++j) {
	scanf("%d",&a[i][j]);
	sum+=a[i][j];
	if((i+j)%2==0) {
		adline(S,num(i,j),a[i][j]);
		for(int q=0;q<4;++q) {
			int xx=i+dx[q];
			int yy=j+dy[q];
			if(xx<1||yy<1||xx>n||yy>m) continue;
			adline(num(i,j),num(xx,yy),inf);
		}
	}
	else {
		adline(num(i,j),T,a[i][j]);
	}
}
2023/5/10 07:02
加载中...