Fast Lowest Common Ancestor

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một cây gồm ~n~ đỉnh và ~n - 1~ cạnh, gốc cây tại nút ~1~.

Trả lời ~q~ truy vấn có dạng:

  • ~u~ ~v~: Đâu là tổ tiên chung thấp nhất của ~u~ và ~v~ (hay còn được gọi là ~lca(u, v)~)?

Gọi ~x_i~ là đáp án của truy vấn thứ ~i~ (~1 \leq i \leq q~), yêu cầu xuất ra giá trị ~ans~ = ~x_1\ \oplus\ x_2\ \oplus\ ...\ \oplus\ x_q~, với ~\oplus~ là phép toán XOR.

Input

Dòng đầu tiên gồm ~2~ số nguyên dương ~n~ và ~q~ (~1 \leq n \leq 10^5~, ~1 \leq q \leq 10^7~).

Trong ~n - 1~ dòng tiếp theo, mỗi dòng chứa ~2~ số nguyên dương (~u~, ~v~) thể hiện một cạnh của cây, (~1 \leq u, v \leq n~, ~u \neq v~).

Các truy vấn sẽ được sinh bằng ~6~ số nguyên ~u_{start}~, ~v_{start}~, ~u_{jump}~, ~v_{jump}~, ~u_{add}~, ~v_{add}~ (~1 \leq u_{start}, v_{start} \leq n~, ~0 \leq u_{jump}, v_{jump}, u_{add}, v_{add} \leq 10^9~) như sau:

  • Trong truy vấn thứ ~1~, ~u_1~ = ~u_{start}~, ~v_1 = v_{start}~.

  • Từ truy vấn thứ ~i~ (~i > 1~), ~u_i~ = (~u_{i-1}~ ~\cdot~ ~u_{jump}~ + ~u_{add}~) mod ~n + 1~, ~v_i~ = (~v_{i-1}~ ~\cdot~ ~v_{jump}~ + ~v_{add}~) mod ~n + 1~.

Output

Gồm ~1~ dòng duy nhất chứa kết quả theo yêu cầu của bài toán.

Scoring

Subtask Điểm Giới hạn
~1~ ~25~ ~n, q \le 10^3~
~2~ ~25~ ~q \le 10^5~
~3~ ~50~ Không có ràng buộc gì gì thêm

Sample Input 1

3 1
1 2
1 3
2 3 1 1 1 1

Sample Output 1

1

Sample Input 2

3 2
1 2
1 3
3 3 1 1 1 1

Sample Output 2

1

Notes

  • Ở test ví dụ đầu tiên, ta có truy vấn ~(u_1, v_1)~ ~=~ ~(2, 3)~ có tổ tiên chung thấp nhất là ~1~. Do đó, đáp án cho test này là ~ans = 1~.

  • Ở test ví dụ thứ hai, ta có ~2~ truy vấn ~(u_1, v_1) = (3, 3)~ và ~(u_2, v_2)~ ~=~ ~(3 \cdot 1 + 1~ mod ~3 + 1, 3 \cdot 1 + 1~ mod ~3 + 1) = (2, 2)~ có tổ tiên chung thấp nhất lần lượt là ~3~ và ~2~. Do đó, đáp án cho test này là ~ans = 3 \oplus 2 = 1~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


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