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

Trận chiến liên hành tinh

Đề bài

Mô tả

N hành tinh được đánh số từ 0 đến N1, nối với nhau bởi N1 đường hầm hai chiều sao cho từ bất kì hành tinh nào cũng có thể đi đến mọi hành tinh khác. Nói cách khác, mạng lưới hành tinh tạo thành một cây.

Mỗi đêm, kẻ địch tấn công đồng thời tất cả các hành tinh. Hành tinh i sẽ thất thủ với xác suất pi (độc lập với các hành tinh khác). Sau cuộc tấn công, một số hành tinh bị mất; các hành tinh còn trụ lại cùng những đường hầm nối giữa chúng chia mạng lưới thành các thành phần liên thông — hai hành tinh thuộc cùng một thành phần nếu có thể đi từ hành tinh này tới hành tinh kia chỉ qua các hành tinh còn trụ.

Trước mỗi đêm (kể cả đêm đầu tiên), chính phủ thay đổi xác suất thất thủ của đúng một hành tinh. Sau mỗi lần thay đổi đó, hãy tính kì vọng số thành phần liên thông còn lại sau một cuộc tấn công.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N — số hành tinh.
  • Dòng thứ hai chứa N số thực trong đoạn [0,1], mỗi số có đúng 2 chữ số sau dấu chấm thập phân, là các xác suất thất thủ p0,p1,,pN1.
  • N1 dòng tiếp theo, mỗi dòng chứa hai số nguyên mô tả một đường hầm nối hai hành tinh.
  • Dòng tiếp theo chứa số nguyên Q — số lần tấn công.
  • Q dòng tiếp theo, mỗi dòng chứa một số nguyên u và một số thực x (có 2 chữ số thập phân): gán pu=x.

Dữ liệu ra

Gồm Q dòng, dòng thứ i là kì vọng số thành phần liên thông sau lần tấn công thứ i. Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá 104.

Ràng buộc

  • 1N105
  • 1Q105
  • 0pi1

Ví dụ

Input Output Giải thích
5
0.50 0.29 0.49 0.95 0.83
2 3
0 3
3 4
2 1
3
4 0.66
1 0.69
0 0.36
1.68040
1.48440
1.61740
Sau lần đổi đầu, xác suất trụ lại là 1pi=[0.50,0.71,0.51,0.05,0.34]. Kì vọng số thành phần =(1pi)(u,v)(1pu)(1pv)=2.110.4296=1.6804.
4
0.50 0.50 0.50 0.50
0 1
1 2
2 3
2
1 0.00
3 1.00
1.25000
1.00000
Cây là một đường thẳng 0123. Sau lần đổi đầu p1=0 (hành tinh 1 chắc chắn trụ); sau lần đổi sau p3=1 (hành tinh 3 chắc chắn thất thủ).

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