算法2

发布时间 2023-03-28 20:34:55作者: 楠030416

分考场

#include<bits/stdc++.h>
using namespace std;

int n,m,total;
bool isknow[101][101],ok[101];

int main()
{
  cin>>n>>m;
  for(int i=0;i<m;i++){
    int a,b;
    cin>>a>>b;
    isknow[a][b]=true;
    isknow[b][a]=true;
  }
    
    total=0;//最多需要n间考场 
    for(int i=1;i<=n;i++){
      if(!ok[i]){
        ok[i]=true;
        total++;
        for(int j=i+1;j<=n;j++){
            if(!ok[j]&&!isknow[i][j]){//j没有被分配考场并且i,j互相不认识,把j分配在i的考场
              ok[j]=true;
            }
        }    
      }
    }
    cout<<total;
      return 0;
}
//方法错误,没有考虑到互相认识的i和j、i和k不认识,但j和k认识的情况