RandomGame

Xem PDF



Tác giả:
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, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2400 Thời gian: 5.5s Bộ nhớ: 1G Input: bàn phím Output: màn hình

RandomGame

Prototype và uou là hai coder thiên tài, luôn tìm kiếm những thử thách tối ưu hóa thuật toán mới. Trong một buổi hackathon cuối tuần, Prototype đã thiết kế một "Cỗ máy biến đổi trạng thái" để thử thách khả năng phân tích của uou.

Prototype cung cấp cho uou một dãy số \(b\) có độ dài \(n\), trong đó các phần tử \(b_i\) phải thỏa mãn điều kiện \(0 \le b_i \le r_i\). Luật hoạt động của cỗ máy như sau: nó sẽ liên tục áp dụng một phép biến đổi \(f\) lên dãy số hiện tại.

Phép biến đổi \(f(b)\) sẽ sinh ra một dãy số mới \(c\) có cùng độ dài \(n\), với phần tử \(c_i\) chính là số lần giá trị \(i\) xuất hiện trong dãy \(b\) (với \(i\) chạy từ \(1\) đến \(n\)). Các giá trị \(0\) hoặc lớn hơn \(n\) trong dãy \(b\) sẽ bị cỗ máy "bỏ qua" (không được đếm vào \(c\)).

Prototype đố uou: "Nếu ta cho dãy này chạy qua cỗ máy tối đa \(100\) lần (tính từ dãy \(b\) ban đầu), tổng số trạng thái (dãy số) phân biệt mà ta thu thập được là bao nhiêu?"

Gọi \(g(b)\) là số lượng dãy phân biệt tối đa thu được đó (tính cả dãy \(b\) ban đầu).

Để thể hiện đẳng cấp, uou không chỉ muốn biết câu trả lời cho một dãy duy nhất, mà muốn tổng quát hóa bài toán: Với mỗi giá trị \(p\) từ \(1\) đến \(k\), hãy đếm xem có tất cả bao nhiêu dãy \(b\) ban đầu hợp lệ sao cho \(g(b) = p\).

Vì kết quả có thể rất lớn, hãy in ra kết quả sau khi chia lấy dư cho \(998244353\).

Input

  • Dòng đầu tiên chứa số nguyên dương \(t\) (\(1 \le t \le 10\)) là số bộ test.
  • Mỗi bộ test bao gồm:
  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(k\) (\(1 \le n \le 50, 1 \le k \le 1000\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(r_1, r_2, \dots, r_n\) (\(0 \le r_i \le n\)).

Output

  • Với mỗi bộ test, in ra trên một dòng \(k\) số nguyên, số thứ \(p\) tương ứng với số lượng dãy \(b\) thỏa mãn \(g(b) = p\) (đã modulo \(998244353\)).

Example

Test 1

Input
1
3 5
2 2 2
Output
1 6 12 8 0
Note

Với \(n = 3\), các dãy \(b\) hợp lệ có \(b_i \in \{0, 1, 2\}\). Có tổng cộng \(3^3 = 27\) dãy.

  • \(g(b) = 1\): Chỉ có \(1\) dãy là \([0, 0, 0]\) (vì \(f([0,0,0]) = [0,0,0]\)).
  • \(g(b) = 2\): Có \(6\) dãy mà sau \(1\) bước biến đổi sẽ rơi vào \([0,0,0]\) hoặc \([1,0,0]\).
  • \(g(b) = 3\): Có \(12\) dãy cần \(2\) bước để hội tụ.
  • \(g(b) = 4\): Có \(8\) dãy cần \(3\) bước để hội tụ.
  • \(g(b) = 5\): Không có dãy nào cần đến \(5\) bước.

Test 2

Input
1
3 4
2 2 0
Output
3 2 2 2

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: