QwQ全WA求调
查看原帖
QwQ全WA求调
754639
I_Was_Spasmodic楼主2024/3/19 18:47

把床的和要床的离散化放到 a,b 里,然后领接矩阵存边,跑匈牙利,全 WA ,求调

#include<bits/stdc++.h>
using namespace std;
bool g[55][55];
int a[55],b[55];
int an,bn,n,T;
int match[55];
bool vis[55];
bool dfs(int u)
{
	for(int v=1;v<=bn;v++)
	{
		if(vis[v])continue;
		if(g[a[u]][b[v]])
		{
			vis[v]=1;
			if(!match[v] or dfs(match[v]))
			{
				match[v]=u;
				return 1;
			}
		}
	}
	return 0;
}
bool xyl()
{
	for(int i=1;i<=an;i++)
	{
		for(int j=1;j<=bn;j++)vis[j]=0;
		if(!dfs(i))return 0;
	}
	return 1;
}
int x;
int main()
{
	cin>>T;
	while(T--)
	{
		an=bn=0;
		cin>>n;
		for(int i=1;i<=n;i++)match[i]=0;
		for(int i=1;i<=n;i++)
		{
			cin>>x;
			if(x)b[++an]=i;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>x;
			if(x==0)a[++bn]=i;
		}
//		for(int i=1;i<=an;i++)printf("%d ",a[i]);
//		printf("\n");
//		for(int i=1;i<=bn;i++)printf("%d ",b[i]);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				cin>>g[i][j];
				if(i==j)g[i][j]=1;
			}
		}
		if(xyl())printf("^_^\n");
		else printf("T_T\n");
	}
}
2024/3/19 18:47
加载中...