#B. 小龙的旅行

    Type: Default 1000ms 512MiB

小龙的旅行

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小龙出发去旅行, 小龙年纪还比较小, 每新到一个地方, 会有一个紧张值, 但是这个紧张值会随着小龙旅行的城市变多, 而慢慢减小.

小龙一共要去nn个点, 这nn个点有mm条双向边, 形成了一个联通图.

小龙已经确定了从 11 号点出发, 在走的过程中, 可以重复经过同一个点, 但是已经旅游过的点小龙是不会再关注的. 他只会在到达一个新的点时, 记录下节点的编号. 最终nn个点都到达过以后, 小龙开始计算他的总体紧张值.

总体紧张值是这么计算的:

首先得到一个序列:

  • 小龙旅行过程中, 每当首次到达一个新的节点时, 就将这个节点的编号记录下来, 最终按顺序放置会得到一个长度为nn的序列
  • 假设序列中第一个编号为a1a_1, 第二个编号为a2a_2..., 第nn个编号为ana_n

其次, 小龙有一个特殊的紧张因子ss, s=s=233333

第一次到达第一个城市, 紧张值为城市编号a1sna_1*s^n

第一次到达第二个城市, 紧张值为城市编号a2sn1a_2*s^{n-1}

依此类推, 第一次到达第nn个城市, 紧张值为城市编号ans1a_n*s^{1}

之后将这nn次的紧张值求和, 即为总体紧张值.

现在想请你为小龙安排路线(11号节点已经确认为出发点了, 即第一个到达的节点), 使得总体紧张值最小, 输出此总体紧张值. 由于此值可能很大, 你只需要输出对109+710^9+7取模的结果.

注意, 题目要求是总体紧张值最小, 而不是取模后的值最小.

输入格式

第一行两个整数nnmm, 分别代表节点数和边数.

接下来mm行, 描述无向边. 每行包含两个整数uiu_iviv_i, 代表一条连接uiu_iviv_i的边.

图中可能有多条边连接同样的一对节点(重边), 也可能有节点连向本身(自环).

保证图是联通的.

输出格式

输出一行一个整数, 代表最小的的总体紧张值, 输出时对109+710^9+7取模.

样例 #1

样例输入 #1

3 2
1 2
1 3

样例输出 #1

59688508

样例 #2

样例输入 #2

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

样例输出 #2

296945171

样例 #3

样例输入 #3

10 10
1 4
6 8
2 5
3 7
9 4
5 6
3 4
8 10
8 9
1 10

样例输出 #3

990633158

样例 #4/#5

见下发文件中ex_trip4/5.in/out

样例解释

对于样例11, 选择路径为1213 1 \rightarrow 2 \rightarrow 1 \rightarrow 3 可以获得最小总体紧张值. 得到的序列为1,2,31, 2, 3

对于样例22, 选择路径为$ 1 \rightarrow 4 \rightarrow 3 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 1 \rightarrow 5 $可以获得最小总体紧张值.

数据范围

对于20%20\%的数据, 1n5,1m20 1 \leq n \leq 5, 1 \leq m \leq 20

对于60%60\%的数据, 1n15,1m200 1 \leq n \leq 15, 1 \leq m \leq 200

对于100%100\%的数据, 1n,m105 1 \leq n, m \leq 10^5 , 1ui,vin 1 \leq u_i, v_i \leq n , 保证无向图为联通的

其他要求

每个测试点时限:11s 内存上限:512512M

GDOI名额比赛

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2025-2-8 14:00
End at
2025-2-8 17:00
Duration
3 hour(s)
Host
Partic.
19