被#5卡了,但是又看不出错在哪里,求助
查看原帖
被#5卡了,但是又看不出错在哪里,求助
167279
Danno0v0楼主2021/10/10 12:06
#include<bits/stdc++.h>

using namespace std;

int n,m,e,x,y;

int fi[10000001],nx[10000001],to[10000001],tot,x_y_x[10000001],x_y_y[10000001],ans=0;

void link(int a,int b)

{

	nx[++tot]=fi[a];

	fi[a]=tot;

	to[tot]=b;

}

void do_work()

{

	bool srt;

	for(int i=1;i<=n;i++)

	{

		for(int j=fi[i];j;j=nx[j])

		{

			int v=to[j];

			if(!x_y_x[v])

			{

				x_y_x[v]=i;

				x_y_y[i]=v;

				srt=true;

			}

			else

			{

				int c=x_y_x[v];

				for(int k=fi[c];k;k=nx[k])

				{

					int s=to[k];

					if(!x_y_x[s])

					{

						x_y_x[s]=c;

						x_y_y[c]=s;

						x_y_x[v]=i;

						x_y_y[i]=v;

						break;

					}

				}

			}

			if(x_y_y[i])

			{

				ans++;

				break;

			}

		}

	}

}

int main()

{

	cin>>n>>m>>e;

	for(int i=1;i<=e;i++)

	{

		cin>>x>>y;

		link(x,y+n);

	}

	do_work();

	cout<<ans;

}

答案是230,但是跑下来只有227,但是其他点都是对的

2021/10/10 12:06
加载中...