Nội dung Bài tập
- Mã:
- HOANVITACH
- Tên:
- Hoán vị có thể tách
- Dạng thi:
- acm
- Thang điểm:
- 1 điểm
- Giới hạn thời gian:
- 2 giây
- Giới hạn bộ nhớ:
- 512 MB
- Được tạo bởi:
- Shido
Ban đầu , ta có 1 mảng có hoán vị có kích thước N (1 mảng với kích thước N trong đó số nguyên từ 1 đến N xuất hiện đúng 1 lần )
Quảng cáo
Ta thực hiện Q hành động . Trong hành động thứ i :
- Chọn mảng mà có ít nhất 2 phần tử
- Chia thành 2 mảng không bị rỗng ( tiền tố và hậu tố)
- Viết 2 số nguyên Li và Ri sao cho Li là phần tử lớn nhất ở bên trái sau khi chia và Ri là phần tử lớn nhất bên phải
- Xóa mảng đã chọn khỏi nhóm mảng có thể sử dụng và thêm vào phần nhóm kết quả
Giả sử mảng ban đầu là [6,3,4,1,2,5] và chúng ta thực hiện các thao tác :
1. Chọn mảng [6,3,4,1,2,5] và tách ra [6,3] và [4,1,2,5] . Sau đó ghi L1 = 6 và R1 =5 và ta có mảng [6,3] và [4,1,2,5]
2. Chọn mảng [4,1,2,5] và tách ra [4,1,2] và [5] . Sau đó ghi L2 = 4 và R2 = 5 và ta có mảng [6,3] , [4,1,2] ,[5]
3. Chọn mảng [4,1,2] và tách ra [4] và [1,2] . Sau đó ghi L3 =4 và R3 = 2 và ta có mảng [6,3] , [4] , [1,2] , [5]
Ta có 2 con số nguyên N và Q và 2 chuỗi gồm [L1,L2,..,LQ] và [R1,R2,...,RQ] . Hoán vị với kích thước N được coi là hợp lệ nếu ta có thể biểu diễn Q hành động và các hành động đã cho với chuỗi [L1,L2,...LQ] và [R1,R2,...,RQ]
Tính số hoán vị hợp lệ
Input
- Dòng đầu gồm hai số nguyên N và Q ( 1 <= Q< N <= 3.105)
- Dòng thứ hai gồm Q số nguyên L1 , L2 , ... , LQ (1 <= Li <= N)
- Dòng thứ ba gồm Q số nguyên R1 , R2 , ... ,RQ (1 <= Ri <= N)
- Phải tồn tại ít nhất 1 hoán vị để tạo ra các chuỗi đã cho [L1,L2,...,LQ] và [R1,R2,...RQ]
Output
- Một số nguyên duy nhất - số hoán vị hợp lệ , lấy modulo 998244353
Ví dụ 1:
Input
Output
6 3
6 4 4
5 5 2
30
Ví dụ 2:
Input
Output
10 1
10
9
1814400
Ví dụ 3:
Input
Output
4 1
2
4
8
Theme :
Mời bạn soạn code
Ai có thể xem bài này :
Thông tin
Phần thảo luận