A6818 | 「HAOI2017」新型城市化
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Anihc 国有 $ n $ 座城市,城市之间存在着一些贸易合作关系,如果城市 $ x $ 和城市 $ y $ 之间存在贸易协定,那么城市 $ x $ 和城市 $ y $ 则是一对贸易伙伴(注意:$ (x, y) $ 和 $ (y, x) $ 是同一对城市)。
为了实现新型城市化,实现统筹城乡一体化以及发挥城市群辐射与带动作用,Anihc 国决定规划新型城市关系。一些城市能够被称为城市群的条件是:这些城市两两都是贸易伙伴。由于 Anihc 国之前也一直很重视城市关系建设,所以可以保证在目前已存在的贸易合作关系的情况下,Anihc 的 $ n $ 座城市可以恰好划分为不超过两个城市群。
为了建设新型城市关系,Anihc 国想要选出两个之前并不是贸易伙伴的城市,使这两个城市称为贸易伙伴,并且要求在这两个城市称为贸易伙伴之后,最大城市群的大小至少比他们称为贸易伙伴之前的最大城市群的大小增加 $ 1 $。
Anihc 国需要在下一次会议上讨论扩大建设新型城市关系的问题,所以需要请你求出在哪些城市之间建立贸易伙伴关系可以使得这个条件成立,即建立此关系前后的最大城市群的大小至少相差 $ 1 $。
为了实现新型城市化,实现统筹城乡一体化以及发挥城市群辐射与带动作用,Anihc 国决定规划新型城市关系。一些城市能够被称为城市群的条件是:这些城市两两都是贸易伙伴。由于 Anihc 国之前也一直很重视城市关系建设,所以可以保证在目前已存在的贸易合作关系的情况下,Anihc 的 $ n $ 座城市可以恰好划分为不超过两个城市群。
为了建设新型城市关系,Anihc 国想要选出两个之前并不是贸易伙伴的城市,使这两个城市称为贸易伙伴,并且要求在这两个城市称为贸易伙伴之后,最大城市群的大小至少比他们称为贸易伙伴之前的最大城市群的大小增加 $ 1 $。
Anihc 国需要在下一次会议上讨论扩大建设新型城市关系的问题,所以需要请你求出在哪些城市之间建立贸易伙伴关系可以使得这个条件成立,即建立此关系前后的最大城市群的大小至少相差 $ 1 $。
输入格式
第一行两个整数 $ n, m $,表示城市的个数,目前还没有建立贸易伙伴关系的城市的对数。接下来 $ m $ 行,每行两个整数 $ x, y $,表示城市 $ x, y $ 之间目前还没有建立贸易伙伴关系。
输出格式
第一行一个整数 $ \text{Ans} $,表示符合条件的城市的对数,注意 $ (x, y) $ 与 $ (y, x) $ 算同一对城市。
接下来 $ \text{Ans} $ 行,每行两个整数,表示一对可以选择来建立贸易伙伴关系的城市。对于一对城市 $ x, y $ 请先输出编号更小的哪一个。最后城市对与城市对之间的顺序请按照字典序从小到大输出。
接下来 $ \text{Ans} $ 行,每行两个整数,表示一对可以选择来建立贸易伙伴关系的城市。对于一对城市 $ x, y $ 请先输出编号更小的哪一个。最后城市对与城市对之间的顺序请按照字典序从小到大输出。
输入输出样例
输入 #1
5 3 1 5 2 4 2 5
输出 #1
2 1 5 2 4
数据点 $ 1 $:$ n \le 16 $;
数据点 $ 2 $:$ n \le 16 $;
数据点 $ 3 \sim 5 $:$ n \le 100 $;
数据点 $ 6 $:$ n \le 500 $;
数据点 $ 7 \sim 10 $:$ n \le 10000 $;
对于所有的数据保证:$ n \le 10000, 0 \le m \le \min(150000, \frac{ n(n-1) }{2}), 1 \le x, y \le n $,保证输入的城市关系中不会出现 $ (x, x) $ 这样的关系,同一对城市也不会出现两次(无重边,无自环)。
数据点 $ 2 $:$ n \le 16 $;
数据点 $ 3 \sim 5 $:$ n \le 100 $;
数据点 $ 6 $:$ n \le 500 $;
数据点 $ 7 \sim 10 $:$ n \le 10000 $;
对于所有的数据保证:$ n \le 10000, 0 \le m \le \min(150000, \frac{ n(n-1) }{2}), 1 \le x, y \le n $,保证输入的城市关系中不会出现 $ (x, x) $ 这样的关系,同一对城市也不会出现两次(无重边,无自环)。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?