QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 1024 MB Points totaux : 100

#9230. 路由 K-Codes

Statistiques

在 Bajtex 公司的内部网络中,有 $n$ 个路由器,编号从 $1$ 到 $n$。一些路由器对之间由双向链路连接。每条链路连接两个不同的路由器,且任意两个路由器之间最多只有一条直接链路。任意两个路由器之间至少存在一条路径相连。

系统管理员正在部署一种新的数据包路由算法。这要求为每个路由器 $a$ 分配一个唯一的 32 位路由代码 $K(a)$($0 \le K(a) < 2^{32}$,$K(a) \neq K(b)$,当 $a \neq b$ 时)。如果两个路由器通过直接链路相连,则其中一个代码应为另一个代码的一半(向下取整)。换句话说,如果路由器 $a$ 和 $b$ 由一条链路连接,则:

$$K(a) = \left\lfloor \frac{K(b)}{2} \right\rfloor \quad \text{或} \quad K(b) = \left\lfloor \frac{K(a)}{2} \right\rfloor$$

请检查是否可以按照这些要求分配路由代码。如果可以,请计算这些代码的最小可能总和 $\sum_{i=1}^n K(i)$。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n \le 200\,000$,$n - 1 \le m \le 200\,000$),分别表示路由器的数量和链路的数量。

接下来的 $m$ 行描述链路。第 $i$ 行包含两个整数 $a_i$ 和 $b_i$($1 \le a_i, b_i \le n$,$a_i \neq b_i$),描述路由器 $a_i$ 和 $b_i$ 之间的一条链路。每条链路在输入中最多出现一次(如果 $i \neq j$,则 $(a_i, b_i) \neq (a_j, b_j)$ 且 $(a_i, b_i) \neq (b_j, a_j)$)。

输出格式

如果可以正确分配唯一的路由代码,输出一个整数:代码的最小可能总和 $\sum_{i=1}^n K(i)$。如果无法分配,则仅输出单词 NIE

样例

样例输入 1

4 3
1 2
1 3
1 4

样例输出 1

6

样例输入 2

4 6
1 2
2 3
3 4
4 1
1 3
2 4

样例输出 2

NIE

说明

在第一个样例中,路由器可以分别分配代码:$1, 0, 2, 3$,其总和为 $6$。 在第二个样例中,无法分配代码。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.