所以灌水区是真的人多吗?
  • 板块灌水区
  • 楼主OIDragon
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/1/18 12:29
  • 上次更新2024/1/18 16:53:00
查看原帖
所以灌水区是真的人多吗?
775893
OIDragon楼主2024/1/18 12:29

求助P2774,WA64分,代码如下:

#include <bits/stdc++.h>
using namespace std;
int xw[1005],hd[9999999],dp[9999999],n,m,s,t,p[1005][1005],cnt = 1,dx[5] = {0,0,0,-1,1},dy[5] = {0,1,-1,0,0};
struct edge
{
	int v,nt;
	long long w;
}e[9999999];
int fun(int x,int y)
{
	return (y - 1) * n + x;
}
void add(int u,int v,int w)
{
	e[++cnt].w = w;
	e[cnt].v = v;
	e[cnt].nt = hd[u];
	hd[u] = cnt;
}
int bfs()
{
	queue<int> q;
	q.push(s);
	memset(dp,0,sizeof(dp));
	dp[s] = 1;
	xw[s] = hd[s];
	while(!q.empty())
	{
		int u = q.front();
		q.pop();
		for(int i = hd[u];i != 0;i = e[i].nt)
		{
			int v = e[i].v;
			xw[v] = hd[v];
			if(e[i].w && dp[v] == 0)
			{
				dp[v] = dp[u] + 1;
				q.push(v);
				if(v == t)
				{
					return 1;
				}
			}
		}	
	}
	return 0;
}
long long dfs(int u,long long f)
{
	long long sum = 0;
	if(u == t)
	{
		return f;
	}
	for(int i = xw[u];i != 0;i = e[i].nt)
	{
		if(f == 0)
		{
			break;
		}
		int v = e[i].v;
		xw[u] = i;
		if(e[i].w != 0 && dp[v] == dp[u] + 1)
		{
			long long k = dfs(v,min(f,e[i].w));
			if(k == 0)
			{
				dp[v] = 0;
			}
			e[i].w -= k;
			e[i ^ 1].w += k;
			sum += k;
			f -= k;
		} 
	}
	return sum;
}
int main()
{
	scanf("%d%d",&m,&n);
	s = 0;
	t = m * n + m + n;
	long long sum = 0;
	for(int i = 1;i <= m;i++)
	{
		for(int j = 1;j <= n;j++)
		{
			scanf("%d",&p[i][j]);
			sum += p[i][j];
		}
	}
	for(int i = 1;i <= m;i++)
	{
		for(int j = 1;j <= n;j++)
		{
			if(fun(j,i) % 2 == 0)
			{
				add(fun(j,i),t,p[i][j]);
				add(t,fun(j,i),0);
				continue;
			}
			add(s,fun(j,i),p[i][j]);
			add(fun(j,i),s,0);
			for(int k = 1;k <= 4;k++)
			{
				int x = j + dx[k],y = i + dy[k];
				if(x >= 1 && x <= n && y >= 1 && y <= m)
				{
					add(fun(j,i),fun(x,y),0x3f3f3f3f);
					add(fun(x,y),fun(j,i),0);
				}
			}
		}
	}
	long long maxa = 0;
	while(bfs() == 1)
	{
		maxa += dfs(s,0x3f3f3f3f);
	}
	printf("%lld",sum - maxa);
	return 0;
}

玄关*3,求助各位路过的大佬,急!!!

2024/1/18 12:29
加载中...