trang chủ / đề bài / divpairq

Cặp ước trong đoạn

Đề bài

Mô tả

Cho dãy p=p1,p2,…,pn gồm n số nguyên đôi một phân biệt, với 1≤pi≤n.

Bạn cần trả lời m truy vấn. Truy vấn thứ i là một cặp số nguyên li,ri: hãy đếm số cặp chỉ số (q,w) với li≤q≤ri và li≤w≤ri sao cho pq là ước của pw.

Cặp (q,w) và cặp (w,q) được xem là khác nhau, và trường hợp q=w cũng được tính vì mọi số đều là ước của chính nó.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m.
  • Dòng thứ hai chứa n số nguyên phân biệt p1,p2,…,pn.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên li và ri.

Dữ liệu ra

In ra m dòng, dòng thứ i là đáp án của truy vấn thứ i, theo đúng thứ tự trong dữ liệu vào.

Ràng buộc

  • 1≤n,m≤2·105
  • 1≤pi≤n, các pi đôi một phân biệt
  • 1≤li≤ri≤n

Ví dụ

Input Output Giải thích
1 1
1
1 1
1 Chỉ có cặp (1,1) vì p1=1 là ước của chính nó.
10 9
1 2 3 4 5 6 7 8 9 10
1 10
2 9
3 8
4 7
5 6
2 2
9 10
5 10
4 10
27
14
8
4
2
1
2
7
9
Với truy vấn 1 10, ta đếm mọi cặp (u,v) với u là ước của v và cả hai đều thuộc {1,…,10}: có 10 cặp u=v cùng 17 cặp u<v, tổng cộng 27.
Với truy vấn 5 6 chỉ còn hai giá trị 5 và 6, không giá trị nào là ước của giá trị kia nên đáp án là 2.
4 4
4 2 3 1
3 4
1 4
1 2
4 4
3
8
3
1
Truy vấn 3 4 lấy hai giá trị 3 và 1: ngoài hai cặp q=w còn có cặp (4,3) vì p4=1 là ước của p3=3.
Truy vấn 1 4 lấy cả bốn giá trị 4,2,3,1: bốn cặp q=w, ba cặp bắt đầu từ giá trị 1, và cặp (2,1) vì 2 là ước của 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