题意:

给定n和k,
要求构造一张n个点的图,满足图连通,且恰好存在k对点,他们之间的最短路距离为2。
如果无解输出-1。

数据范围:n<=100,k<=n*(n-1)/2

解法:

显然满足最短距离为2,点对数量最多的情况为:

如果在两个距离为2的点之间连接一条边,那么最短距离就会变为1,那么答案减少一对,例如:

code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PI pair<int,int>
const int maxm=1e5+5;
vector<PI>ans;
int n,k;
signed main(){ios::sync_with_stdio(0);cin>>n>>k;int ma=(n-1)*(n-2)/2;if(k>ma){cout<<-1<<endl;return 0;}for(int i=2;i<=n;i++){ans.push_back({1,i});}ma-=k;for(int i=2;i<=n&&ma;i++){for(int j=i+1;j<=n&&ma;j++){ans.push_back({i,j});ma--;}}cout<<ans.size()<<endl;for(auto i:ans){cout<<i.first<<' '<<i.second<<endl;}return 0;
}

ABC131 E - Friendships(构造)相关推荐

  1. Friendships

    Friendships 题意:构造一个有n个节点的无向图,规定任意边为1,要求有k对(i,j)i<j的边距离至少为2 思路:k最多有(n-1)*(n-2)/2,先从1开始连接所有节点,再从2开始 ...

  2. 哈工大软件构造实验一

    哈工大软件构造lab1 实验目标 实验过程 Magic Square 第一部分 要求 实现 第二部分 要求 实现 Turtle Graphics 第一部分 绘制多边形 第二部分 计算方位 第三部分 凸 ...

  3. 【软件构造】实验笔记(一)Lab1-Fundamental Java Programming and Testing

    一.前言 <软件构造>课程是我校根据MIT.CMU等计算机领域名校的相关课程近年来开展的软件开发相关的课程.课程的实验和课件都很大程度上参考了上述学校. 本笔记对在课程实验练习进行中遇到的 ...

  4. LeetCode简单题之构造矩形

    题目 作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 你设计的矩形 ...

  5. 兑换量子计算机,阅读 | 【量子计算机】构造置换量子门

    原标题:阅读 | [量子计算机]构造置换量子门 量子计算机的一个基本组成单位叫量子门(quantum gate),下面简单介绍些基本概念. 量子比特和量子态 量子计算机的信息存储单元是一种叫做量子比特 ...

  6. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...

    主类 HTTPSendPHP.as 1 package 2 { 3 import com.JPEGEncoder.JPGEncoder; 4 import com.fylib.httpRequest. ...

  7. js把base64串解析成中文_回文问题终极篇:最小代价构造回文串

    学算法认准 labuladong 东哥带你手把手撕力扣? 点击下方卡片即可搜索? 读完本文,你可以去力扣完成第 1312 题「让字符串成为回文串的最少插入次数」,难度 Hard. 回文串就是正着读反着 ...

  8. php构造和析构方法,php5构造函数与析构函数实例

    自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...

  9. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

最新文章

  1. oracle ORA-00119和ORA-00132解决方法
  2. Opengl-立方体贴图(天空盒子)
  3. linux下安装apache tomcat,Linux CentOS 7下 Apache Tomcat 7 安装与配置
  4. SVM分类器原理详解
  5. 计算机组成原理(哈工大刘宏伟)135讲(二)
  6. windows启动winload.exe的数字签名错误问题
  7. Python Numpy
  8. 约瑟夫 java_约瑟夫问题 java 实现详解
  9. Linux 截图保存快捷键
  10. QT记录博客总结(内有对应电子书与源代码)
  11. 电脑怎么连接隐藏的无线WiFi信号呢
  12. ISO 8583协议-银行交易的标准
  13. 怎么用黑白打印机打印清晰可读的PPT文档
  14. bilibili封面
  15. 教你轻松调DCT和ICC之间Timing与Congestion的一致性
  16. STM32硬件SPI通过fm17550读取身份证UID,识别银行卡,识别TYPEA与TYPEB
  17. STM32+DAC8830驱动程序
  18. 创建并配置一个伪分布式Hadoop3.x版本集群(三)
  19. 正则表达式,前后非空,中间可空
  20. Python项目对接CAS

热门文章

  1. 跨境电商平台开源BeikeShop系统-新增插件市场
  2. Camera ISP 转
  3. matlab仿真问题汇总(版本转换,代数环,波形振荡)
  4. goland Wsl2下出现的项目文件无法保存的问题
  5. 对于斗地主残局,用python实现solver
  6. 东北师范大学计算机学院官网6,计算机学院
  7. 广州2011年度最感人照片
  8. 用独孤九剑的方式看设计模式
  9. 基于轻量级目标检测模型实现手写汉字检测识别计数
  10. Redis设计与实现 笔记 第十七章 集群 cluster