尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

题解:AT_abc131_e [ABC131E] Friendships

题解:AT_abc131_e [ABC131E] Friendships
📅 发布时间:2026/6/20 0:31:31

前言

这是本人第一篇题解。

题意

构造一个简单图(没有重边与自环)。图中总共有 $N$ 个节点,分别为 $1$ 到 $N$。总共有 $M$ 条边,每一条边的长度均为 $1$。有且仅有 $K$ 对节点 $(u,v)$ 满足 $u$ 到 $v$ 的最短距离为 $2$。若不存在这样的图,输出 −1,否则给出任何一种满足条件的图。

思路

这是一道简单的构造题,可以想到菊花图(或树)。

如图:

图中一共有 $\frac{(N-1)\times(N-2)}{2}$ 对距离为 $2$ 的点。

所以,还需要减去 $\frac{(N-1)\times(N-2)}{2} - K$ 对距离为 $2$ 的点。

如图,可以在 $2$ 和 $3$ 、 $2$ 和 $4$ 、 $2$ 和 $5$ 或 $3$ 和 $7$ 等连边即可,直到减完为止。

Code

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,b;
signed main(){scanf("%lld%lld",&n,&m);int q=(n-1)*(n-2)/2;if(m>q){printf("-1");return 0;}int o=q-m;b=o+n-1;printf("%lld\n",b);for(int i=2;i<=n;i++){cout<<"1 "<<i<<endl;}for(int i=2;i<=n;i++){for(int j=i+1;j<=n;j++){if(i==j)continue;if(!o)return 0;cout<<i<<" "<<j<<endl;o--;}}return 0;
}

相关新闻

  • C 运算符、表达式、语句
  • [KaibaMath]1018 基于复合函数理解子数列的一般项
  • 窗口函数

最新新闻

  • 2026银川2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 字节跳动拟购5万颗AI芯片,国产GPU竞争聚焦生态、成本与产能
  • 基于深度学习的糖尿病视网膜病变自动检测系统构建实战
  • Obsidian MCL布局:模块化CSS让你的笔记排版焕然一新
  • 逆向工程实战:从加密音乐文件到通用音频格式的转换原理
  • NGA论坛优化摸鱼体验:免费开源脚本让你的论坛浏览效率提升300%

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号