这道题说是暴力,但其实暴力里面也是有些技巧的,比如你不能按照点去遍历,那么这样就有些情况考虑不到;
我们可以先把横坐标排下序,然后纵坐标排下序,这样我们就知道了每一种举行的情况,只多不少.
遍历求出最小面积即可
代码
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
int N,M;
int Map[55][55];
int visit[55];
int main(){
cin>>N>>M;
for(int i = 1;i<=M;i++)
{
int a,b;
cin>>a>>b;
visit[a]++;
visit[b]++;
Map[a][b] = Map[b][a] = 1;
}
int sum = 0;
int xi;
bool falg = true;
while(1)
{
falg = true;
for(int i = 1;i<=N;i++)
{
if(visit[i]==1)
{
sum++;
xi = i;
falg = false;
visit[i]--;
break;
}
}
if(falg) break;
for(int i = 1;i<=N;i++)
{
if(Map[xi][i]==1)
visit[i]--;
}
}
cout<<sum<<endl;
return 0;
}