trang chủ / đề bài / dhbb25_dx08_10_matching

Biển quảng cáo

Đề bài

Mô tả

Ông Nguyên là một chủ nhà hàng có tiếng ở QN, nhà hàng của ông có một dãy hàng rào vô cùng đặc biệt. Hàng rào của nhà hàng là một dãy gồm m thanh gỗ liên tiếp, với mỗi thanh gỗ có chiều cao nằm trong đoạn [1,m] và đôi một khác nhau. Nói cách khác, chiều cao các thanh gỗ là dãy a1,a2,…,am là một hoán vị của dãy số {1,2,…,m}.

Dạo gần đây, nhà hàng vắng khách nên ông Nguyên quyết định mua một biển quảng cáo đặc biệt đặt trước hàng rào của nhà hàng để thu hút sự chú ý, mong phần nào cứu vớt tình hình buôn bán ế ẩm của nhà hàng mình. Biển quảng cáo ông mua về có độ dài n (n≤m), kích thước tương ứng với n thanh gỗ trên hàng rào. Cửa hàng biển quảng cáo cũng đưa cho ông một dãy số s1,s2,…,sn là hoán vị của dãy số {1,2,…,n}.

Gọi chỉ số các thanh gỗ trên hàng rào được gắn biển quảng cáo lên là [u,u+1,…,v] (với v−u+1=n). Cửa hàng hướng dẫn: để có thể gắn biển quảng cáo lên hàng rào một cách chắc chắn và đẹp mắt thì đoạn các thanh gỗ liên tiếp được gắn biển quảng cáo phải thỏa mãn (thứ tự chiều cao xét trong n thanh gỗ au,au+1,…,av):

  • au là chiều cao nhỏ thứ s1;
  • au+1 là chiều cao nhỏ thứ s2;
  • ...
  • av là chiều cao nhỏ thứ sn.

Yêu cầu: Ông Nguyên muốn biết có bao nhiêu cách đặt mà biển quảng cáo của ông sẽ chắc chắn và đẹp mắt.

Dữ liệu vào

  • Dòng đầu là 2 số nguyên n và m (1≤n≤m≤2×105).
  • Dòng hai chứa n số nguyên s1,s2,…,sn (1≤si≤n), là một hoán vị của {1,2,…,n}.
  • Dòng ba chứa m số nguyên a1,a2,…,am (1≤ai≤m), là một hoán vị của {1,2,…,m}.

Dữ liệu ra

  • Dòng đầu chứa số k là số lượng cách.
  • Dòng hai chứa k số nguyên là các chỉ số u (chỉ số đầu của khoảng chỉ số [u,u+1,…,v] thỏa mãn đề bài) được sắp xếp theo thứ tự tăng dần. Nếu k=0 thì dòng này để trống.

Ràng buộc

  • 1≤n≤m≤2×105.
  • 30% số điểm thỏa mãn điều kiện m≤1000.
  • 30% số điểm thỏa mãn điều kiện s1<s2<s3<…<sn (với n<m).
  • 40% số điểm còn lại không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
3 4
1 2 3
2 3 4 1
1
1
Có 1 dãy con thỏa mãn: {2,3,4} (bắt đầu từ u=1).
6 24
5 6 3 1 2 4
19 22 23 3 1 2 17 10 4 8 6 20 21 13 7 9 15 11 5 16 24 18 14 12
2
2 12
Có 2 dãy con thỏa mãn: {22,23,3,1,2,17} (bắt đầu từ u=2) và {20,21,13,7,9,15} (bắt đầu từ u=12). Trong dãy thứ nhất, 22 là số nhỏ thứ 5, 23 nhỏ thứ 6, 3 nhỏ thứ 3, 1 nhỏ thứ 1, 2 nhỏ thứ 2, 17 nhỏ thứ 4.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0