求助!!!
查看原帖
求助!!!
1283028
lxznice楼主2024/10/7 11:29
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,b,sum=0,max,lll;
	cin>>n>>b;
	int a[n+1][n+1];
	bool hx[n+1],pd;
	int l[n+1];
	for(int i=1;i<=n;i++)
	{
		hx[i]=1;
		for(int j=1;j<=n;j++)
		{
			a[i][j]=0;
		}
	}
	for(int i=1;i<=b;i++)
	{
		cin>>max>>lll;
		hx[max]=0;
		hx[lll]=0;
		a[max][lll]=1;
		a[lll][max]=1;
	}
	while(1)
	{
		pd=1;
		for(int i=1;i<=n;i++)
		{
			if(hx[i])continue;
			l[i]=0;
			for(int j=1;j<=n;j++)
			{
				if(a[i][j]==1)l[i]++;
			}
			if(pd)
			{
				max=i;
				pd=0;
				continue;
			}
			if(l[max]<=l[i])max=i;
		}
		hx[max]=1;
		cout<<endl<<max<<endl<<endl;
		sum++;
		lll=0;
		for(int i=1;i<=n;i++)
		{
			if(a[max][i]==1)
			{
				a[max][i]=0;
				a[i][max]=0;
				hx[i]=1;
			}
			if(hx[i])lll++;
		}
		if(lll==n)break;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]==1)
			{
				cout<<"Impossible";
				return 0;
			}
		}
	}
	cout<<sum;
	return 0;
} 
2024/10/7 11:29
加载中...