trang chủ / đề bài / redistgg

Phân Phối Quà Tặng (Gold)

Đề bài

Mô tả

Farmer John có N món quà (đánh số từ 1 đến N) cho N con bò (đánh số từ 1 đến N). Mỗi con bò có một danh sách ưu tiên, là hoán vị của N món quà. Ban đầu, quà i được trao cho bò i.

Các con bò có thể trao đổi quà với điều kiện: mỗi con bò phải nhận được cùng món quà ban đầu hoặc một món quà ưa thích hơn.

Tuy nhiên, mỗi con bò thuộc một trong hai giống: Holstein (H) hoặc Guernsey (G). Một món quà chỉ có thể được trao cho con bò cùng giống với con bò ban đầu nhận nó.

Cho Q truy vấn, mỗi truy vấn chỉ định giống của từng con bò. Với mỗi truy vấn, đếm số cách phân phối quà hợp lệ.

Dữ liệu vào

  • Dòng 1: Số nguyên N
  • N dòng tiếp theo: Danh sách ưu tiên của bò i
  • Dòng N+2: Số nguyên Q
  • Q dòng tiếp theo: Xâu ký tự 'G' và 'H' độ dài N, chỉ định giống của mỗi con bò

Dữ liệu ra

  • Q dòng, mỗi dòng là số cách phân phối hợp lệ cho truy vấn tương ứng.

Ràng buộc

  • 1≤N≤18
  • 1≤Q≤min(105,2N)

Ví dụ

Input Output Giải thích
4
1 2 3 4
1 3 2 4
1 2 3 4
1 2 3 4
5
HHHH
HHGG
GHGH
HGGG
GHHG
2
1
1
2
2
Với "HHHH": 2 cách — giữ nguyên hoặc bò 2 đổi với bò 3. Với "HHGG": chỉ 1 cách — giữ nguyên (bò 2 và 3 khác giống nên không đổi được).

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0