trang chủ / bài tập / 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 1pin.

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 liqriliwri 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 nm.
  • 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 liri.

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

  • 1n,m2·105
  • 1pin, các pi đôi một phân biệt
  • 1lirin

Ví dụ

Input Output Giải thích
1 1
1
1 1
1 Chỉ có cặp (1,1)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ị 56, 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ị 31: ngoài hai cặp q=w còn có cặp (4,3)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)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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0