Google Code Jam 2021 - Hidden Pancakes

Xem PDF




Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 Thời gian: 2.5s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Ta nấu tổng cộng \(N\) chiếc bánh kếp: một chiếc bán kính \(1\) cm, một chiếc \(2\) cm, ..., một chiếc \(N\) cm, theo thứ tự bất kỳ. Chiếc đầu đặt lên đĩa; mỗi chiếc sau đặt lên chiếc trước, đồng tâm. Khi vừa thêm, một bánh luôn nhìn thấy từ trên. Nó chỉ bị che khi về sau có bánh bán kính lớn hơn.

Ví dụ với \(4\) bánh: nấu bán kính \(3\) trước, có một bánh thấy được; thêm bán kính \(1\), cả hai thấy được; thêm bán kính \(2\), nó che bánh \(1\) nhưng không che bánh \(3\), còn hai bánh thấy được; cuối cùng bánh \(4\) che tất cả, chỉ còn một. Trong hình, bánh tô kín là thấy được, bánh bán trong suốt là bị che.

Gọi \(V_i\) là số bánh nhìn thấy khi chồng có đúng \(i\) bánh. Ví dụ có \(V=(1,2,2,1)\). Cho \(V_1,\ldots,V_N\), có bao nhiêu trong \(N!\) thứ tự nấu tạo đúng dãy đó? In kết quả modulo \(10^9+7\).

Dữ liệu vào

Dòng đầu chứa \(T\). Mỗi bộ gồm hai dòng: \(N\), rồi \(N\) số \(V_1,\ldots,V_N\).

Dữ liệu ra

Với mỗi bộ, in Case #x: y, với \(y\) là số thứ tự nấu hợp lệ modulo \(1000000007\).

Ràng buộc

  • \(1\le T\le100\); \(1\le V_i\le i\).

Phân nhóm

  • Test Set 1 (Visible Verdict): \(2\le N\le13\).
  • Test Set 2 (Hidden Verdict): \(2\le N\le10^5\).

Điểm các phân nhóm

Mỗi Test Set tương ứng với một subtask trên LQDOJ. Bảng dưới đây giữ nguyên điểm chính thức của Google Code Jam và quy đổi tỷ lệ trên tổng điểm của bài.

Phân nhóm Điểm Google Code Jam Tỷ lệ điểm của bài
Test Set 1 10/31 32,26%
Test Set 2 21/31 67,74%

Ví dụ

Ví dụ 1

Input
3
4
1 2 2 1
3
1 1 2
3
1 1 3
Output
Case #1: 1
Case #2: 2
Case #3: 0
Giải thích

Mẫu #1 là ví dụ trong đề; \(3,1,2,4\) là thứ tự duy nhất. Mẫu #2 có hai thứ tự \(1,3,2\)\(2,3,1\):


Ở mẫu #3, sau bánh thứ hai chỉ có một bánh thấy được; chỉ thêm một bánh thứ ba không thể làm số nhìn thấy tăng lên hơn \(2\).

Ví dụ bổ sung — Test Set 2

1
24
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

Case #1: 234141013

??? "Giải thích"
    Có $316234143225$ thứ tự nấu tạo dãy; modulo $10^9+7$ là $234141013$. Ví dụ không chạy trên lời giải nộp.

Nguồn

Google Code Jam 2021, Vòng 2, bài Hidden Pancakes.

Nguồn chính thức trên Google Coding Competitions Archive, phát hành theo giấy phép Apache-2.0.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: