#abc328e. E - Modulo MST

E - Modulo MST

Score : 475475 points

问题描述

给定一个带权无向简单连通图,包含 NN 个顶点和 MM 条边,其中顶点编号从 11NN,边编号从 11MM。另外还给出一个正整数 KK

i (1iM)i\ (1\leq i\leq M) 连接顶点 uiu_iviv_i,具有权重 wiw_i

对于该图的一棵生成树 TT,定义其成本为树中所有边的权重之和,对 KK 取模后的结果。请找出该图中生成树的最小成本。

以上为通义千问 qwen-max 翻译,仅供参考。

Problem Statement

You are given a weighted simple connected undirected graph with NN vertices and MM edges, where vertices are numbered 11 to NN, and edges are numbered 11 to MM. Additionally, a positive integer KK is given.
Edge i (1iM)i\ (1\leq i\leq M) connects vertices uiu_i and viv_i and has a weight of wiw_i.

For a spanning tree TT of this graph, the cost of TT is defined as the sum, modulo KK, of the weights of the edges in TT. Find the minimum cost of a spanning tree of this graph.

Constraints

  • 2N82\leq N\leq8
  • N1MN(N1)2N-1\leq M\leq\dfrac{N(N-1)}2
  • 1K10151\leq K\leq10^{15}
  • 1ui<viN (1iM)1\leq u_i\lt v_i\leq N\ (1\leq i\leq M)
  • 0wi<K (1iM)0\leq w_i\lt K\ (1\leq i\leq M)
  • The given graph is simple and connected.
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

NN MM KK

u1u_1 v1v_1 w1w_1

u2u_2 v2v_2 w2w_2

\vdots

uMu_M vMv_M wMw_M

Output

Print the answer.

Sample Input 1

5 6 328
1 2 99
1 3 102
2 3 86
2 4 94
2 5 95
3 4 81

Sample Output 1

33

The given graph is shown below:

The cost of the spanning tree containing edges 1,3,5,61,3,5,6 is (99+86+81+95)mod328=361mod328=33(99+86+81+95)\bmod{328}=361\bmod{328}=33. The cost of every spanning tree of this graph is at least 3333, so print 3333.

Sample Input 2

6 5 998244353
1 2 337361568
1 6 450343304
2 3 61477244
2 5 745383438
4 5 727360840

Sample Output 2

325437688

Print the cost of the only spanning tree of this graph, which is 325437688325437688.

Sample Input 3

8 28 936294041850197
1 2 473294720906780
1 3 743030800139244
1 4 709363019414774
1 5 383643612490312
1 6 557102781022861
1 7 623179288538138
1 8 739618599410809
2 3 857687812294404
2 4 893923168139714
2 5 581822471860662
2 6 740549363586558
2 7 307226438833222
2 8 447399029952998
3 4 636318083622768
3 5 44548707643622
3 6 307262781240755
3 7 12070267388230
3 8 700247263184082
4 5 560567890325333
4 6 704726113717147
4 7 588263818615687
4 8 549007536393172
5 6 779230871080408
5 7 825982583786498
5 8 713928998174272
6 7 751331074538826
6 8 449873635430228
7 8 11298381761479

Sample Output 3

11360716373

Note that the input and the answer may not fit into a 32bit32\operatorname{bit} integer.

update @ 2024/3/10 01:53:01