Cạnh đầu trong cây khung nhỏ nhất

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh và m cạnh. Mỗi cạnh có một trọng số nguyên không âm. Không có hai cạnh nào nối cùng một cặp đỉnh.

Xét cạnh đầu tiên trong danh sách đầu vào, gọi là c1, nối hai đỉnh uv. Ta muốn biết: có thể đặt trọng số mới e cho cạnh c1 lớn nhất bằng bao nhiêu sao cho cạnh c1 vẫn có thể thuộc một cây khung nhỏ nhất nào đó của đồ thị?

Cụ thể, hãy tìm giá trị nguyên e lớn nhất với 0e109 thỏa mãn: nếu thay trọng số của c1 bằng e (giữ nguyên các cạnh khác) thì tồn tại ít nhất một cây khung nhỏ nhất của đồ thị có chứa c1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm (2n105, n1m106).
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên a, b, w mô tả một cạnh nối đỉnh a với đỉnh b có trọng số w (1a,bn, ab, 0w109).

Đảm bảo không có hai cạnh trùng cặp đỉnh và đồ thị liên thông.

Dữ liệu ra

Một số nguyên duy nhất: giá trị e lớn nhất tìm được.

Ràng buộc

  • 2n105
  • n1m106
  • 1a,bn, ab
  • 0w109

Ví dụ

Input Output Giải thích
3 3
1 2 8
2 3 3
3 1 4
4 Cạnh đầu tiên là (1,2). Nếu trọng số của nó 4, ta có cây khung nhỏ nhất {(1,2),(2,3)} chứa cạnh đầu. Nếu trọng số >4, cây khung nhỏ nhất duy nhất là {(2,3),(3,1)} không chứa nó. Vậy đáp án là 4.
2 1
1 2 944277353
1000000000 Đồ thị chỉ có một cạnh, đó là cầu. Dù trọng số là bao nhiêu (đến 109), cạnh đầu luôn nằm trong cây khung nhỏ nhất.
10 9
10 6 372466999
8 10 747983735
7 3 152533203
9 4 277637756
6 3 433907019
3 5 559956918
8 2 749679249
3 1 793145160
9 7 24657622
1000000000 Đồ thị có đúng n1=9 cạnh nên chính là một cây. Mọi cạnh, kể cả cạnh đầu, đều bắt buộc nằm trong cây khung; do đó đáp án bằng 109.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0