codeforces C. System Administrator

大意是给定n,m,v,n个点,在这n个点之间连m条双向边,使得去掉点v之后该图不连通;

#

yy了一个能联通的最小值,树,如果m<n-1则无解;

then 最大值?

完全图,但是n-1个点的完全图,要抠出一个孤立的点只和v连接,确保v是割点

=(n-1)*(n-2)/2+1;

#

先判无解再输出方案

复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m,v,a,b;
int main()
{ 
    cin>>n>>m>>v;
    int minn=n-1;
    int maxn=(n-2)*(n-1)/2+1;
    //n=2,n=3?
    if(m<minn||m>maxn)
     {
        cout<<-1;return 0;    
     }
     
     m-=n-1;
     
     for(int i=1;i<=n;i++)
     {
         if(i==v) continue;
         cout<<v<<" "<<i<<endl;
     }
     
     if(m)
     {
         for(int i=2;i<n;i++)
          {
              if(i==v) continue;
              for(int j=1;j<i;j++)
               {
                   if(j==v) continue;
                   cout<<i<<" "<<j<<endl;
                   m--;
                   if(m==0) return 0;
               }
          }
     }
}
复制代码

 

posted @   liyishui  阅读(40)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示