Dãy con MEX-chuẩn

Đề bài

Mô tả

Ký hiệu MEX(x1,x2,,xk) là số nguyên không âm nhỏ nhất không xuất hiện trong các số x1,x2,,xk. Chẳng hạn MEX(1,0,1,3)=2MEX(2,1,5)=0.

Một dãy số nguyên x1,x2,,xk được gọi là MEX-chuẩn nếu với mọi i (1ik) đều thỏa mãn

|xiMEX(x1,x2,,xi)|1.

Nói cách khác, điều kiện phải đúng tại mọi tiền tố của dãy, với MEX được tính lại trên đúng tiền tố đó.

Cho mảng a gồm n số nguyên không âm. Hãy đếm số dãy con khác rỗng của a là dãy MEX-chuẩn. Kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 998244353.

Dãy con của mảng a là dãy [ai1,ai2,,aim] với 1i1<i2<<imn. Hai dãy con được coi là khác nhau khi bộ chỉ số [i1,i2,,im] của chúng khác nhau, kể cả khi chúng tạo ra cùng một dãy giá trị.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên n: độ dài mảng.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số dãy con MEX-chuẩn khác rỗng của mảng, lấy phần dư khi chia cho 998244353.

Ràng buộc

  • 1t105
  • 1n5·105
  • 0ain
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 5·105.

Ví dụ

Input Output Giải thích
4
3
0 2 1
2
1 0
5
0 0 0 0 0
4
0 1 2 3
4
2
31
7
Bộ 1: bốn dãy con hợp lệ là [0], [1], [0, 1], [0, 2]. Bộ 2: chỉ có [0] và [1]; dãy [1, 0] không hợp lệ vì sau khi lấy cả hai số thì MEX =2 nhưng 02=2. Bộ 3: mọi dãy con khác rỗng đều hợp lệ nên đáp án là 251=31.
3
4
0 2 0 2
3
1 1 1
5
2 0 1 0 3
10
7
6
Bộ 1: mọi dãy con hợp lệ đều phải bắt đầu bằng một số 0, riêng dãy [2] không hợp lệ vì MEX(2)=020=2. Bộ 2: MEX luôn bằng 0 nên mọi dãy con khác rỗng đều hợp lệ, đáp án 231=7. Bộ 3: các dãy con hợp lệ là [0], [1], [0] (số 0 thứ hai), [0, 1], [0, 0] và [0, 1, 3].

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0