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

Đồ thị nhiều màu

Đề bài

Mô tả

Cho đồ thị vô hướng có n đỉnh và m cạnh. Các đỉnh được đánh số từ 1 đến n. Mỗi cạnh i có một màu ci, nối hai đỉnh aibi.

Hai đỉnh uv được gọi là liên thông theo màu c nếu chỉ dùng các cạnh có màu c, ta đi được từ u đến v (trực tiếp hoặc gián tiếp).

Với mỗi truy vấn (u,v), hãy đếm số màu c sao cho uv liên thông theo màu c.

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 ba số nguyên ai, bi, ci — mô tả một cạnh nối ai với bi có màu ci.
  • Dòng tiếp theo chứa một số nguyên q — số truy vấn.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên ui, vi.

Có thể tồn tại nhiều cạnh giữa cùng hai đỉnh, nhưng không có hai cạnh nào trùng cả ba giá trị (ai,bi,ci).

Dữ liệu ra

Với mỗi truy vấn, in ra số màu thoả mãn trên một dòng.

Ràng buộc

  • 2n105
  • 1m105
  • 1ai<bin
  • 1cim
  • 1q105
  • 1ui,vinuivi

Ví dụ

Input Output Giải thích
4 5
1 2 1
1 2 2
2 3 1
2 3 3
2 4 3
3
1 2
3 4
1 4
2
1
0
Đỉnh 12 liên thông theo màu 1 (cạnh 12) và màu 2 (cạnh 12). Đỉnh 34 liên thông theo màu 3 (qua đỉnh 2). Đỉnh 14 không liên thông theo màu nào.
5 7
1 5 1
2 5 1
3 5 1
4 5 1
1 2 2
2 3 2
3 4 2
5
1 5
5 1
2 5
1 5
1 4
1
1
1
1
2
Màu 1 là hình sao tâm 5, màu 2 là đường thẳng 1234. Cặp (1,4) liên thông theo cả hai màu.

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