CEOI 2022 - Homework

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

Đề bài

Helena vừa hoàn thành năm đầu tiên ở trường tiểu học. Cô bé là một học sinh gương mẫu, luôn đạt điểm cao và đặc biệt yêu thích toán học. Hiện Helena đang tận hưởng kỳ nghỉ xứng đáng cùng gia đình, nhưng cô bắt đầu nhớ những bài tập toán hằng ngày. May thay, anh trai của Helena quyết định thỏa mãn niềm đam mê ấy bằng bài toán sau.

Một biểu thức hợp lệ được định nghĩa đệ quy như sau:

  • Xâu ? là một biểu thức hợp lệ, biểu diễn một số.
  • Nếu \(A\)\(B\) là các biểu thức hợp lệ thì min(A,B)max(A,B) cũng là các biểu thức hợp lệ. Biểu thức thứ nhất trả về số nhỏ hơn trong hai đối số, còn biểu thức thứ hai trả về số lớn hơn.

Ví dụ, min(min(?,?),min(?,?))max(?,max(?,min(?,?))) là các biểu thức hợp lệ, còn ??, max(min(?))min(?,?,?) thì không.

Helena nhận được một biểu thức hợp lệ chứa tổng cộng \(N\) dấu hỏi. Mỗi dấu hỏi phải được thay bằng một số thuộc tập \(\{1,2,\ldots,N\}\) sao cho mỗi số trong tập xuất hiện đúng một lần trong biểu thức. Nói cách khác, các dấu hỏi được thay bằng một hoán vị của các số từ \(1\) đến \(N\).

Sau khi thay các dấu hỏi bằng số, ta có thể tính giá trị biểu thức; kết quả là một số nguyên từ \(1\) đến \(N\). Xét mọi cách gán số cho các dấu hỏi, Helena có thể thu được bao nhiêu giá trị khác nhau?

Dữ liệu vào

Dòng duy nhất chứa một biểu thức hợp lệ.

Dữ liệu ra

In một số nguyên từ \(1\) đến \(N\): số lượng giá trị khác nhau có thể thu được khi tính biểu thức.

Ràng buộc

Trong tất cả các subtask, \(2\le N\le 1\,000\,000\).

Phân nhóm

  • Subtask 1 (10 điểm): \(N\le 9\).
  • Subtask 2 (13 điểm): \(N\le 16\).
  • Subtask 3 (13 điểm): Mỗi hàm trong biểu thức có ít nhất một đối số là dấu hỏi ?.
  • Subtask 4 (30 điểm): \(N\le 1\,000\).
  • Subtask 5 (34 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
min(min(?,?),min(?,?))
Output
1
Giải thích

Dù gán các số theo cách nào, giá trị của biểu thức luôn bằng phần tử nhỏ nhất của tập \(\{1,2,3,4\}\), tức là \(1\). Vì vậy chỉ có một giá trị có thể thu được.

Ví dụ 2

Input
max(?,max(?,min(?,?)))
Output
2
Giải thích

Có thể thu được \(4\) bằng \(4=\max(4,\max(3,\min(2,1)))\) và thu được \(3\) bằng \(3=\max(3,\max(2,\min(1,4)))\). Có thể chứng minh rằng không thể thu được \(1\) hoặc \(2\), nên đáp án là \(2\).

Ví dụ 3

Input
min(max(?,?),min(?,max(?,?)))
Output
3

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: