Filthy Rich Trees

Xem dạng PDF

Gửi bài giải


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

Người đăng:
Nguồn bài:
https://codeforces.com/gym/102694/problem/E
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Có thể bạn đã từng nghe qua câu nói: "Tiền không mọc trên cây". Hiển nhiên, người nghĩ ra câu nói đó trông có vẻ như không có tí kiến thức gì về thực vật học cũng như về lập trình. Bạn đã được học rằng, tạo ra một cây để "mọc ra tiền" là điều rất tầm thường. Vì vậy, đây mới là thử thách thực sự:

Bạn có một gốc cây mọc ra tiền ở đỉnh ~1~, và tất cả các đỉnh đều có một giá trị nhất định. Giá trị của cây con của đỉnh ~x~ sẽ bằng tích của tất cả các giá trị của các đỉnh thuộc cây con ấy. Ban đầu, tất cả các đỉnh có giá trị ~1~.

Bây giờ, có ~q~ truy vấn dạng t x y:

  • Nếu ~t = 1~, bạn sẽ cho đỉnh ~x~ một loại phân bón đặc biệt, chuyển giá trị của nó thành ~y~.

  • Nếu ~t = 2~, một khách hàng sẽ đến và hỏi rằng: "Giá trị cây con gốc ~x~ gấp giá trị cây con gốc ~y~ bao nhiêu lần?". Hơn nữa, vì bạn không thích những số quá lớn, nên nếu đáp án lớn hơn ~10^9~, hãy in ra 1000000000.

Input

  • Dòng đầu tiên chứa một số nguyên dương ~n~, số đỉnh của cây. ~(1 \leq n \leq 3 \times 10^5)~

  • ~n-1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên dương khác nhau, mô tả một cạnh ở trên cây. Những cạnh này sẽ tạo thành một cây.

  • Dòng tiếp theo chứa một số nguyên ~q~, số lượng các truy vấn. ~(1 \leq q \leq 3 \times 10^5)~

  • ~q~ dòng tiếp theo là các truy vấn, mỗi truy vấn có dạng t x y như đã mô tả ở trên. ~(1 \leq t \leq 2,\ 1 \leq x,y \leq n)~

Output

  • Với mỗi truy vấn loại ~2~, in ra một dòng chứa một số thực duy nhất là câu trả lời cho câu hỏi: "Giá trị cây con gốc ~x~ gấp giá trị cây con gốc ~y~ bao nhiêu lần?" Nếu kết quả lớn hơn hoặc bằng ~10^9~ hãy in ra ~1000000000~.

  • Đối với mọi truy vấn, kết quả của bạn sẽ được chấp nhận nếu giống hoàn toàn hoặc chênh lệch so với đáp án tác giả đưa ra không quá ~10^{-6}~.

Sample 1

Input
1
1
1 1 1
Output

Sample 2

Input
3
3 2
2 1
3
2 2 2
2 1 2
2 3 3
Output
1.0000000000
1.0000000000
1.0000000000

Sample 3

Input
5
4 2
1 4
5 4
3 4
5
2 5 2
1 5 4
1 5 5
1 5 4
2 5 4
Output
1.0000000000
1.0000000000

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.