1 条题解

  • 0
    @ 2026-9-26 16:27:39

    思路

    团就是完全图,即任意两个点之间均有一条边。

    那么只需枚举点 ii 和点 jj,如果它们之间没有边,将 jj 打上标记,最后输出哪些点没有被标记即可,注意只输出 n3\frac{n}{3} 个点。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    bool edge[3005][3005],vis[3005];
    int main()
    {
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=m;i++)
    	{
    		int u,v;
    		cin>>u>>v;
    		edge[u][v]=edge[v][u]=1;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(vis[i]!=0)continue;
    		for(int j=i+1;j<=n;j++)
    		{
    			if(edge[i][j]==1||vis[j]==1)continue;//如果有边就不需要打标记
    			vis[i]=vis[j]=1;
    			break;
    		}
    	}
    	int sum=0;
    	for(int i=1;i<=n;i++)
    	{
    		if(vis[i]==1)continue;
    		++sum;
    		cout<<i<<" ";
    		if(sum*3>=n)return 0;
    	}
    }
    
    • 1

    信息

    ID
    4195
    时间
    1000ms
    内存
    64MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者