trang chủ / bài tập / identops

Xác định các thao tác

Đề bài

Mô tả

Cho một hoán vị a1,a2,,an và một mảng b ban đầu rỗng. Ta thực hiện thao tác sau đúng k lần.

Ở lần thực hiện thứ i, ta chọn một chỉ số ti (1tini+1), xoá phần tử ati khỏi mảng a, rồi thêm một trong hai phần tử kề ati1 hoặc ati+1 (nếu chỉ số tương ứng còn nằm trong mảng) vào cuối mảng b. Sau đó các phần tử ati+1, được dồn sang trái để lấp chỗ trống.

Nói cách khác, mỗi thao tác xoá một phần tử của a và thêm vào b một phần tử kề với phần tử vừa bị xoá (tại thời điểm xoá).

Cho hoán vị ban đầu a1,,an và mảng kết quả b1,,bk. Tất cả các phần tử của b đều đôi một khác nhau. Hãy đếm số dãy chỉ số t1,t2,,tk có thể sinh ra đúng mảng b, lấy phần dư khi chia cho 998244353.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa hai số nguyên n,k.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an là các phần tử của a.
    • Dòng thứ ba chứa k số nguyên b1,b2,,bk là các phần tử của b.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên là số dãy chỉ số hợp lệ lấy phần dư cho 998244353.

Ràng buộc

  • 1t100000
  • 1k<n200000
  • 1ain, các ai đôi một khác nhau (là một hoán vị).
  • 1bin, các bi đôi một khác nhau.
  • Tổng của n trên tất cả các bộ dữ liệu không vượt quá 200000.

Ví dụ

Input Output Giải thích
3
5 3
1 2 3 4 5
3 2 5
4 3
4 3 2 1
4 3 1
7 4
1 4 7 3 6 2 5
3 2 4 5
2
0
4
Bộ 1: hai cách, ví dụ (t1,t2,t3)=(4,3,2) hoặc (4,1,2). Bộ 2: không thể tạo ra b nên đáp án là 0. Bộ 3: có bốn cách.
6
2 1
2 1
1
3 2
1 3 2
1 3
4 2
4 1 3 2
1 2
5 3
4 3 2 5 1
1 4 5
6 3
2 4 5 6 1 3
2 4 5
7 3
7 6 4 3 2 1 5
1 2 6
1
0
2
0
0
4
Mỗi bước, số cách chọn bằng số phần tử kề còn có thể xoá; nhân dồn các số cách này lại.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0