Điểm:
600
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho vector \(a=(a_1,a_2,...,a_n)\). Một vector \(a\) được gọi là "chuẩn mực" nếu vector đó thoả mãn các điều kiện sau:
-
\(a_i\in \mathbb{N}\)
-
\(a_i+a_{i+1}<m (\forall 1\le i<n\))
-
\(a_1+a_n<m\)
Yêu cầu: Cho trước các số nguyên dương \(n,m\). Hỏi ta có thể xây dựng được bao nhiêu vector "chuẩn mực" khác nhau. (Hai vector "chuẩn mực" \(p\) và \(q\) gọi là khác nhau nếu tồn tại phần tử \(j(1\le j\le n)\) thoả mãn \(p_j\ne q_j\)).
Input
-
Dòng thứ nhất chứa số \(t(1\le t\le 20)\) - Thể hiện số testcase của bài toàn
-
\(t\) dòng tiếp theo, mỗi dòng chứa \(2\) số nguyên \(n,m(2\le n\le 5*10^4 , 1\le m\le 10^9)\)
Output
- Ứng với mỗi testcase, in ra đáp án cần tìm. (Vì đáp án có thể rất lớn, nên ta cần lấy mod \(998244353\) trước khi in ra
Example
Test 1
Input
2
3 2
5 9
Output
4
8105
Bình luận
mùi fft:))
Bạn có thể nói là bài này có trên Codeforces chứ không cần phải nói nó là FFT để thể hiện gì đâu 🐧
P/s: Mình biết nó trên Codeforces vì mình từng làm nó một lần rồi :Đ
Cụ thể là mình nói thuật nghĩ còn bạn nghĩ ovtk kiểu gì chả được 🐧🐧🐧