robot (Tin học trẻ C - Vòng Khu vực 2024)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Trên hai đồ thị vô hướng, liên thông \(G_1\)\(G_2\) cùng có \(n\) đỉnh. Với hai đỉnh \(s\)\(t\), đặt robot thứ nhất ở đỉnh \(s\) trên đồ thị \(G_1\), robot thứ hai cũng ở đỉnh \(s\) trên đồ thị \(G_2\), tìm cách di chuyển hai robot cùng về đỉnh \(t\) như sau: Tại mỗi thời điểm, chọn một đỉnh \(v\), với mỗi robot, robot có thể lựa chọn di chuyển đến \(v\) nếu có cạnh hoặc không thực hiện di chuyển. Gọi \(d(s,t)\) là thời gian ngắn nhất để hai robot cùng đến được đỉnh \(t\).

Yêu cầu: Tính tổng các giá trị \(d(s,t)\) cho mọi cặp \((s,t)\).

Input

  • Dòng đầu chứa số nguyên dương \(n\) (\(n \le 500\)).
  • Dòng tiếp theo chứa số nguyên dương \(m_1\) là số cạnh của đồ thị \(G_1\).
  • \(m_1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i,y_i\) cho biết hai đỉnh \(x_i,y_i\) có cạnh nối trong đồ thị \(G_1\).
  • Dòng tiếp theo chứa số nguyên dương \(m_2\) là số cạnh của đồ thị \(G_2\).
  • \(m_2\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u_j,v_j\) cho biết hai đỉnh \(u_j,v_j\) có cạnh nối trong đồ thị \(G_2\).

Output

  • Gồm một dòng là tổng các giá trị \(d(s,t)\) cho mọi cặp \((s,t)\).

Example

Test 1

Input
3
3
1 2
2 3
3 1
2
1 2
2 3
Output
8

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(n \le 100\).
  • Subtask \(2\) (\(50\%\) số điểm): \(n \le 500\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: