trang chủ / đề bài / th_tst_25_d

RING

Đề bài

Mô tả

Cho một đồ thị vô hướng gồm N đỉnh, ban đầu không có cạnh nào. Có M truy vấn, mỗi truy vấn có dạng như sau: "u v" - Thêm cạnh (u,v) vào đồ thị.

Một thành phần liên thông có dạng vòng là thành phần liên thông thỏa mãn mọi đỉnh đều kề với đúng 2 đỉnh khác.

Yêu cầu: Sau mỗi truy vấn, hãy đếm số thành phần liên thông có dạng vòng.

Dữ liệu vào

  • Dòng đầu tiên gồm 2 số nguyên N và M (1≤N,M≤3×105).
  • Mỗi dòng thứ i trong M dòng tiếp theo ghi 2 số nguyên u,v là cạnh được thêm vào trong truy vấn thứ i (1≤u,v≤N).

Dữ liệu vào luôn đảm bảo không có cạnh trùng và cạnh nối một đỉnh với chính nó.

Dữ liệu ra

Gồm M dòng, dòng thứ i là số thành phần liên thông có dạng vòng sau truy vấn thứ i.

Ràng buộc

  • 1≤N,M≤3×105.
  • 1≤u,v≤N, u≠v, không có hai truy vấn thêm cùng một cạnh.

Subtasks

  • Subtask 1 (30% số điểm): N,M≤103.
  • Subtask 2 (70% số điểm): Không có giới hạn gì thêm.

Ví dụ

Input Output Giải thích
4 4
1 2
2 3
3 1
3 4
0
0
1
0
Sau truy vấn 3, các đỉnh 1,2,3 tạo thành một vòng. Sau truy vấn 4, đỉnh 3 kề với 3 đỉnh nên thành phần {1,2,3,4} không còn là vòng.
8 8
1 2
2 3
2 4
3 5
4 5
6 7
7 8
8 6
0
0
0
0
0
0
0
1
Sau truy vấn 5 có chu trình 2,3,5,4 nhưng đỉnh 2 còn kề với đỉnh 1 (kề với 3 đỉnh), nên thành phần {1,2,3,4,5} không có dạng vòng. Sau truy vấn 8, các đỉnh 6,7,8 tạo thành một vòng.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0