USACO 2017 - Block Game

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: 700 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Farmer John đang cố dạy đàn bò đọc bằng cách đưa cho chúng một bộ gồm \(N\) bảng ghép vần thường dùng cho trẻ mẫu giáo (\(1 \leq N \leq 100\)). Mỗi mặt của một bảng có một từ và một hình ảnh. Chẳng hạn, một mặt có thể có từ cat cùng hình một con mèo, còn mặt kia có thể có từ dog cùng hình một con chó. Vì vậy, khi các bảng nằm trên mặt đất, có \(N\) từ được hiển thị. Bằng cách lật một số bảng, một bộ \(N\) từ khác có thể được đưa lên trên.

Để giúp đàn bò đánh vần, Farmer John muốn làm một số khối gỗ, mỗi khối được khắc nổi một chữ cái trong bảng chữ cái. Ông muốn làm đủ nhiều khối cho mỗi chữ cái để bất kể bộ \(N\) từ nào đang nằm ngửa trên các bảng, đàn bò đều có thể dùng các khối để ghép tất cả những từ này. Chẳng hạn, nếu \(N=3\) và các từ box, cat, car đang nằm ngửa, đàn bò sẽ cần ít nhất một khối b, một khối o, một khối x, hai khối c, hai khối a, một khối t và một khối r.

Hãy giúp Farmer John xác định số khối tối thiểu cần chuẩn bị cho từng chữ cái trong bảng chữ cái, sao cho bất kể mặt nào của mỗi bảng đang được hiển thị, đàn bò đều có thể ghép tất cả \(N\) từ nhìn thấy được.

Dữ liệu vào

Dòng đầu tiên chứa số nguyên \(N\).

\(N\) dòng tiếp theo, mỗi dòng chứa hai từ cách nhau bởi một dấu cách, là hai từ ở hai mặt đối diện của một bảng. Mỗi từ là một xâu gồm không quá \(10\) chữ cái thường.

Dữ liệu ra

In \(26\) dòng. Dòng đầu tiên chứa số khối chữ a cần có. Dòng tiếp theo chứa số khối chữ b cần có, và cứ tiếp tục như vậy theo thứ tự bảng chữ cái.

Ví dụ

Ví dụ 1

Input
3
fox box
dog cat
car bus
Output
2
2
2
1
0
1
1
0
0
0
0
0
0
0
2
0
0
1
1
1
1
0
0
1
0
0
Giải thích

Trong ví dụ này, có \(N=3\) bảng, tạo ra \(2^3=8\) khả năng cho bộ từ nằm ngửa:

fox dog car
fox dog bus
fox cat car
fox cat bus
box dog car
box dog bus
box cat car
box cat bus

Ta cần đủ số khối cho mỗi chữ cái trong bảng chữ cái để có thể ghép cả ba từ, bất kể trường hợp nào trong tám trường hợp trên xảy ra.

Nguồn

USACO 2016 December Contest, Bronze — Block Game. Tác giả đề: Viktoriia Schwartz.

https://usaco.org/index.php?page=viewproblem2&cpid=664

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: