Luogu3524 POI2011 Party 图论、构造

时间:2025-02-21 23:05:26

题目传送门:https://www.luogu.org/problemnew/show/P3524

大意:给一个$N$个点的图,其中一定有一个大小为$\frac{2}{3}N$的团,程序需给出一个大小为$\frac{N}{3}$的团。$N \leq 3000,N \% 3 = 0$


所以这道题还是比较水?

考虑将没有连边的两个点同时删去,那么最坏情况是每一次删除团内一个点被误删,那么最多有$\frac{N}{3}$个点被误删,剩下的最少$\frac{N}{3}$个点就是留下的团了

 #include<bits/stdc++.h>
 #define MAXN 3010
 using namespace std;
 bool vis[MAXN] , hEd[MAXN][MAXN];
 int main(){
     ios::sync_with_stdio();
     cin.tie();
     cout.tie();
     int N , M;
     cin >> N >> M;
      ; i <= M ; i++){
         int a , b;
         cin >> a >> b;
         hEd[a][b] = hEd[b][a] = ;
     }
     ;
      ; i <= N && cnt < N /  ; i++){
         if(vis[i])
             continue;
         ;
          ; f && j <= N ; j++)
             if(!vis[j] && !hEd[i][j]){
                 vis[i] = vis[j] = ;
                 f = ;
             }
         if(f){
             cnt++;
             cout << i << ' ';
         }
     }
     ;
 }