分考场
#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认识的情况