博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bayan 2015 Contest Warm Up D题(GCD)
阅读量:5235 次
发布时间:2019-06-14

本文共 1269 字,大约阅读时间需要 4 分钟。

D. CGCDSSQ
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Given a sequence of integers a1, ..., an and q queries x1, ..., xq on it. For each query xi you have to count the number of pairs (l, r)such that 1 ≤ l ≤ r ≤ n and gcd(al, al + 1, ..., ar) = xi.

 is a greatest common divisor of v1, v2, ..., vn, that is equal to a largest positive integer that divides all vi.

Input

The first line of the input contains integer n, (1 ≤ n ≤ 105), denoting the length of the sequence. The next line contains n space separated integers a1, ..., an, (1 ≤ ai ≤ 109).

The third line of the input contains integer q, (1 ≤ q ≤ 3 × 105), denoting the number of queries. Then follows q lines, each contain an integer xi, (1 ≤ xi ≤ 109).

Output

For each query print the result in a separate line.

Sample test(s)
input
32 6 3512346
output
12201
input
710 20 3 15 1000 60 16101234561020601000
output
14022202211
题意:给出n个数,然后给q个询问,每次询问给出一个x。问有多少个区间的GCD是x
思路:比赛的时候yy的一个做法
            首先预处理出全部值的区间个数,这个用map存一下就好了,设为ans
            然后再开两个map 分别为mp mp2
            mp存的是以Xi结尾的全部区间的GCD的数的个数
            每次从Xi转移到Xi+1,仅仅须要累加以Xi结尾的区间的全部mp值与Xi+1的GCD的个数就好了,能够暂时赋给mp2,然后再赋给mp
            依照这种方法从左往右for一遍就好了
            然后查询的时候直接在ans里查就好了
            复杂度大概是O(N*(每一个数的因子个数))

转载于:https://www.cnblogs.com/zsychanpin/p/7101312.html

你可能感兴趣的文章
非静态内部类不能拥有静态变量 为什么
查看>>
android.os.NetworkOnMainthreadexception处理
查看>>
数据库复习⑥
查看>>
jQuery的中文乱码问题[转]
查看>>
bzoj 2005 & 洛谷 P1447 [ Noi 2010 ] 能量采集 —— 容斥 / 莫比乌斯反演
查看>>
P1631 序列合并
查看>>
Luogu_4886 快递员
查看>>
内存优化文章链接
查看>>
ext4.0 代理 的使用
查看>>
数据检查约束类型和语法
查看>>
AngularJS实战之路由ui-view
查看>>
使用jQuery+huandlebars防止编码注入攻击
查看>>
C#的托管与非托管大难点
查看>>
[转]HTTPS简谈
查看>>
(图片)jsp上传图片,进行缩放处理
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
HDU-2577-How to Type
查看>>
java日志框架之logback——布局详细说明书地址
查看>>
Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素...
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>