USACO 2020 - Non-Decreasing Subsequences

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2500 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Gần đây Bessie tham gia một kỳ thi USACO và gặp bài toán sau. Tất nhiên, Bessie biết cách giải nó. Còn bạn thì sao?

Xét một dãy \(A_1,A_2,\ldots,A_N\) có độ dài \(N\) (\(1\le N\le 5\cdot 10^4\)), chỉ gồm các số nguyên trong khoảng \(1\ldots K\) (\(1\le K\le 20\)). Bạn được cho \(Q\) truy vấn (\(1\le Q\le 2\cdot 10^5\)) có dạng \([L_i,R_i]\) (\(1\le L_i\le R_i\le N\)). Với mỗi truy vấn, hãy tính số dãy con không giảm của \(A_{L_i},A_{L_i+1},\ldots,A_{R_i}\) theo modulo \(10^9+7\).

Một dãy con không giảm của \(A_L,\ldots,A_R\) là một tập hợp chỉ số \((j_1,j_2,\ldots,j_x)\) sao cho \(L\le j_1<j_2<\cdots<j_x\le R\)\(A_{j_1}\le A_{j_2}\le\cdots\le A_{j_x}\). Hãy nhớ tính cả dãy con rỗng!

Phân nhóm

  • Các test từ \(2\) đến \(3\) thỏa mãn \(N\le 1000\).
  • Các test từ \(4\) đến \(6\) thỏa mãn \(K\le 5\).
  • Các test từ \(7\) đến \(9\) thỏa mãn \(Q\le 10^5\).
  • Các test từ \(10\) đến \(12\) không có ràng buộc bổ sung.

Dữ liệu vào

Dữ liệu vào được đọc từ tệp nondec.in.

Dòng đầu tiên chứa hai số nguyên \(N\)\(K\), cách nhau bởi dấu cách.

Dòng thứ hai chứa \(N\) số nguyên \(A_1,A_2,\ldots,A_N\), cách nhau bởi dấu cách.

Dòng thứ ba chứa một số nguyên \(Q\).

Mỗi dòng trong \(Q\) dòng tiếp theo chứa hai số nguyên \(L_i\)\(R_i\), cách nhau bởi dấu cách.

Dữ liệu ra

Với mỗi truy vấn \([L_i,R_i]\), ghi ra tệp nondec.out trên một dòng mới số dãy con không giảm của \(A_{L_i},A_{L_i+1},\ldots,A_{R_i}\) theo modulo \(10^9+7\).

Ví dụ

Ví dụ 1

Input
5 2
1 2 1 1 2
3
2 3
4 5
1 5
Output
3
4
20
Giải thích

Với truy vấn đầu tiên, các dãy con không giảm là \(()\), \((2)\)\((3)\). \((2,3)\) không phải một dãy con không giảm vì \(A_2\not\le A_3\).

Với truy vấn thứ hai, các dãy con không giảm là \(()\), \((4)\), \((5)\)\((4,5)\).

Nguồn

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: