USACO 2026 - Strange Function

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

Với mọi số nguyên dương \(x\), hàm \(f(x)\) được định nghĩa như sau:

  • Nếu \(x\) có bất kỳ chữ số nào khác \(0\)\(1\), với mỗi chữ số của \(x\), đổi chữ số đó thành \(1\) nếu nó lẻ, hoặc thành \(0\) nếu không, rồi trả về \(x\).
  • Nếu không, trả về \(x-1\).

Cho một giá trị \(x\) (\(1\leq x<10^{2\cdot 10^5}\)), hãy tìm số lần cần áp dụng \(f\) lên \(x\) để \(x\) trở thành \(0\). Vì số này có thể rất lớn, hãy in phần dư của nó khi chia cho \(10^9+7\).

Dữ liệu vào

Dòng đầu tiên chứa \(T\) (\(1\le T\le 10^5\)), số lượng bộ test độc lập.

\(T\) dòng tiếp theo, mỗi dòng chứa một số nguyên dương \(x\) chỉ gồm các chữ số từ 0 đến 9 và không có chữ số \(0\) ở đầu.

Đảm bảo tổng số chữ số trong tất cả các số nguyên đầu vào không vượt quá \(10^6\).

Dữ liệu ra

Với mỗi bộ test, in trên một dòng riêng phần dư của số lần cần áp dụng hàm khi chia cho \(10^9+7\).

Ví dụ

Ví dụ 1

Input
2
24680
210
Output
1
4
Note

Bộ test thứ nhất: \(x\) trở thành \(0\) sau một thao tác.

Bộ test thứ hai: \(f(x)=10, f^2(x)=9, f^3(x)=1, f^4(x)=0\).

Ví dụ 2

Input
1
1234567890123456789012345678901234567890
Output
511620083

Phân nhóm

  • Dữ liệu 3-5: \(T\le 2000\), \(x<10^9\).
  • Dữ liệu 6-7: \(x<10^{18}\).
  • Dữ liệu 8-9: \(x<10^{60}\).
  • Dữ liệu 10-12: Không có ràng buộc bổ sung.

Nguồn

USACO 2026 Contest 3, Bronze — Strange Function. Tác giả: Aidan Bai.
https://usaco.org/index.php?page=viewproblem2&cpid=1588

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: