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

Chiến thuật thắng cuộc

Đề bài

Mô tả

Một đội tuyển thi đấu lập trình luôn gồm đúng n thành viên. Mỗi người chỉ được phép dự vòng chung kết tối đa hai lần trong đời.

Người ta thống kê được: nếu một đội có i thành viên đã từng dự chung kết trước đó (và ni thành viên còn lại lần đầu dự thi) thì xác suất giành huy chương của đội là pi. Biết rằng p0p1pn.

Trường có nguồn sinh viên vô hạn và muốn cử đội đi thi vô hạn nhiều lần (năm 1,2,3,). Ở năm thứ k, đội gồm ak thành viên đã từng dự thi (với 0akn) và nak thành viên lần đầu. Sau năm đó:

  • ak người đã từng dự thi này giờ đã dùng hết hai lần, không thể tham dự nữa.
  • nak người lần đầu trở thành "đã từng dự thi một lần", có thể được dùng cho các năm sau.

Nói cách khác, mỗi năm ta tiêu thụ ak người thuộc kho "đã dự một lần" và bổ sung nak người mới vào kho đó; kho này không bao giờ được âm.

Hãy chọn dãy chiến thuật a1,a2, sao cho giới hạn xác suất trung bình giành huy chương mỗi năm

Ψ=limm1mk=1mpak

tồn tại và đạt giá trị lớn nhất. In ra giá trị lớn nhất đó.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n+1 số thực p0,p1,,pn (mỗi số có không quá 6 chữ số sau dấu chấm), thỏa mãn pipi+1 với mọi 0in1.

Dữ liệu ra

  • In ra một số thực: giá trị Ψ lớn nhất khi dùng chiến thuật tối ưu. Kết quả được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá 106.

Ràng buộc

  • 3n100
  • 0pi1

Ví dụ

Input Output Giải thích
3
0.115590 0.384031 0.443128 0.562356
0.4286122500 Xen kẽ hai chiến thuật a=1a=3: năm dùng a=1 sinh ra n1=2 người mới, năm dùng a=3 tiêu thụ 3 người. Trung bình cân bằng cho Ψ=(2·33)p1+(32·1)p32(31)=0.42861225.
3
1 1 1 1
1.0000000000 Mọi pi=1 nên bất kể chiến thuật nào cũng luôn thắng, Ψ=1.

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