#P10163. [DTCPC 2024] 平方树

[DTCPC 2024] 平方树

题目描述

给你一个森林,每条边有一个方向。

你可以进行两种操作:

  • 新增一个点。

  • 将两个点之间连一条有向边。

你要使得最后将所有有向边看成无向边后,图形成一棵树,且每个点的出度都是平方数。

给出一种新增点数最少的方案。

输入格式

第一行两个整数 n,mn,m1m<n1051\le m \lt n \le 10^5)表示这个森林的点数和边数。

接下来 mm 行,每行两个数 u,vu,v1u,vn1\le u,v\le n)表示一条 uu 连向 vv 的有向边。

保证将每条边看作无向边后,这张图是森林。

输出格式

第一行两个整数 x,yx,y 表示你的新增点数和连边数。

接下来 yy 行,每行两个数 u,vu,v 表示新增一条 uu 连向 vv 的有向边,你要保证 1u,vn+x1\le u,v\le n+x

3 2
1 2
1 3
2 2
1 4
1 5