Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 512 MB Total points: 100 Hackable ✓
Statistics

Yuki có một đa tập $S=\{s_1,\ldots,s_n\}$ có kích thước $n$ và một số nguyên $k$.

Yuki định nghĩa một phép biến đổi như sau:

  • Chọn một tập con $S'$ của $S$ (trong đó $S'$ có thể là tập rỗng), xóa $S'$ khỏi $S$ và thêm $\operatorname{mex}^{*}$ của $S'$ vào $S$.

Bây giờ, Yuki muốn thực hiện một số phép biến đổi để $S$ trở thành $\{k\}$. Bạn cần giúp Yuki tìm số phép biến đổi ít nhất cần thiết để $S$ bằng $\{k\}$. Vì đáp án có thể rất lớn, bạn chỉ cần in đáp án lấy modulo $998244353$.

Có thể chứng minh rằng luôn tồn tại ít nhất một dãy thao tác có thể biến $S$ thành $\{k\}$.

$*$: Mex của một đa tập là số nguyên không âm nhỏ nhất không xuất hiện trong đa tập đó. Ví dụ, $\operatorname{mex}\{0,1,2\}=3$, $\operatorname{mex}\{1,0,3,1\}=2$ và $\operatorname{mex}\varnothing=0$.

Dữ liệu vào

Bài toán này có nhiều bộ dữ liệu kiểm thử.

Dòng đầu tiên chứa một số nguyên dương $t$ ($1 \le t \le 10^5$), biểu thị số bộ dữ liệu kiểm thử.

Với mỗi bộ dữ liệu kiểm thử:

  • Dòng đầu tiên chứa hai số nguyên $n,k$ ($1 \le n \le 5 \cdot 10^5$, $0 \le k \le 10^9$).
  • Dòng thứ hai chứa $n$ số nguyên $s_1,\ldots,s_n$ ($0 \le s_i \le 10^9$).

Đảm bảo rằng tổng $n$ trên tất cả các bộ dữ liệu kiểm thử không vượt quá $5 \cdot 10^5$.

Dữ liệu ra

Với mỗi bộ dữ liệu kiểm thử, in một dòng chứa một số nguyên biểu thị số phép biến đổi ít nhất cần thiết để $S$ bằng $\{k\}$, lấy modulo $998244353$.

Ví dụ

Dữ liệu vào 1

6
1 2
1
1 4
4
3 3
0 2 2
4 2
1 0 3 2
4 3
2 1 0 2
3 52
20 2 6

Dữ liệu ra 1

2
0
3
2
1
262875292

Ghi chú

Với bộ dữ liệu kiểm thử thứ nhất:

  • Yuki có thể chọn $S'=\varnothing$ trong phép biến đổi thứ nhất, làm cho $S=\{0,1\}$, rồi chọn $S'=\{0,1\}$ trong phép biến đổi thứ hai, làm cho $S=\{2\}$.
  • Có thể chứng minh rằng không tồn tại dãy thao tác với ít phép biến đổi hơn, nên đáp án là $2$.

Với bộ dữ liệu kiểm thử thứ hai:

  • Yuki không cần thực hiện phép biến đổi nào để có $S=\{4\}$, nên đáp án là $0$.

Với bộ dữ liệu kiểm thử thứ ba:

  • Yuki có thể chọn $S'=\varnothing$ trong phép biến đổi thứ nhất, làm cho $S=\{0,0,2,2\}$, chọn $S'=\{0,2\}$ trong phép biến đổi thứ hai, làm cho $S=\{0,1,2\}$, rồi chọn $S'=\{0,1,2\}$ trong phép biến đổi thứ ba, làm cho $S=\{3\}$.
  • Có thể chứng minh rằng không tồn tại dãy thao tác với ít phép biến đổi hơn, nên đáp án là $3$.

Với bộ dữ liệu kiểm thử thứ tư:

  • Yuki có thể chọn $S'=\{2,3\}$ trong phép biến đổi thứ nhất, làm cho $S=\{0,0,1\}$, rồi chọn $S'=\{0,0,1\}$ trong phép biến đổi thứ hai, làm cho $S=\{2\}$.
  • Có thể chứng minh rằng không tồn tại dãy thao tác với ít phép biến đổi hơn, nên đáp án là $2$.

Với bộ dữ liệu kiểm thử thứ năm:

  • Yuki có thể chọn trực tiếp $S'=\{0,1,2,2\}$ trong phép biến đổi thứ nhất, làm cho $S=\{3\}$.
  • Có thể chứng minh rằng không tồn tại dãy thao tác với ít phép biến đổi hơn, nên đáp án là $1$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.