trang chủ / bài tập / harmgraph

Đồ thị điều hòa

Đề bài

Mô tả

Cho một đồ thị vô hướng đơn G gồm n đỉnh và m cạnh. Các đỉnh được đánh số từ 1 đến n.

Đồ thị được gọi là điều hòa nếu thỏa mãn tính chất sau:

  • Với mọi bộ ba số nguyên (l,m,r)1l<m<rn, nếu trong G tồn tại đường đi từ đỉnh l đến đỉnh r thì cũng phải tồn tại đường đi từ đỉnh l đến đỉnh m.

Nói cách khác, nếu từ đỉnh l ta có thể đến đỉnh r với l<r, thì ta cũng phải đến được mọi đỉnh có chỉ số nằm giữa, tức l+1,l+2,,r1.

Hãy tính số cạnh ít nhất cần thêm vào G để đồ thị trở nên điều hòa.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ui,vi (uivi) — mô tả một cạnh nối đỉnh ui với vi.

Đồ thị là đơn (không có cạnh khuyên và không có hai cạnh nối cùng một cặp đỉnh).

Dữ liệu ra

In ra một số nguyên duy nhất — số cạnh tối thiểu cần thêm để đồ thị trở nên điều hòa.

Ràng buộc

  • 3n200000
  • 1m200000
  • 1ui,vin, uivi

Ví dụ

Input Output Giải thích
200000 3
7 9
9 8
4 5
0 Đồ thị đã điều hòa: thành phần {7,8,9}{4,5} đều có các đỉnh liên tiếp.
14 8
1 2
2 7
3 4
6 3
5 7
3 8
6 8
11 12
1 Từ đỉnh 1 có thể đến đỉnh 7 nhưng không đến được 6. Thêm cạnh (2,4) là đủ để đồ thị điều hòa.
3 1
1 3
1 Từ 1 đến 3 được nhưng không đến được 2, phải thêm 1 cạnh.

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