Google Code Jam 2011 - Mystery Square

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: 2500 Thời gian: 9.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Tôi đã viết một số chính phương lớn ở hệ nhị phân, sau đó thay thế một số chữ số bằng các dấu chấm hỏi. Bạn có thể tìm ra số ban đầu của tôi là gì không?

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào cho biết số lượng bộ test, \(T\). \(T\) bộ test tiếp theo, mỗi bộ trên một dòng. Mỗi dòng chứa \(S\): một số chính phương được viết ở hệ nhị phân, nhưng có một số chữ số bị thay thế bởi dấu chấm hỏi.

Dữ liệu ra

Với mỗi bộ test, hãy xuất một dòng chứa "Case #x: \(N\)", trong đó x là số thứ tự bộ test (bắt đầu từ 1) và \(N\) là một số chính phương viết ở hệ nhị phân, thu được bằng cách thay thế mỗi ký tự '?' trong \(S\) bằng ký tự '0' hoặc '1'.

Ràng buộc

  • \(1 \le T \le 25\).
  • \(S\) bắt đầu bằng '1'.
  • \(S\) chỉ chứa các ký tự '0', '1', và '?'.
  • Trong mọi bộ test, luôn có đúng một lựa chọn duy nhất cho \(N\).

Phân nhóm

  • Small dataset (Test set 1 - Visible):

    • \(S\) có độ dài tối đa 60 ký tự.
    • \(S\) chứa tối đa 20 ký tự '?'.
  • Large dataset (Test set 2 - Hidden):

    • \(S\) có độ dài tối đa 125 ký tự.
    • \(S\) chứa tối đa 40 ký tự '?'.

Đ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/41 24,39%
Test Set 2 31/41 75,61%

Ví dụ

Ví dụ 1

Input
3
1???
1
10??110??00??1000??
Output
Case #1: 1001
Case #2: 1
Case #3: 1011110110000100001

Nguồn

Google Code Jam 2011, Vòng 3, bài Mystery Square.

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: