#THU20231C. 互质数

    ID: 215 Type: Default 1000ms 512MiB Tried: 1 Accepted: 1 Difficulty: 6 Uploaded By: Tags>清华推研机试环境测试考研组合数学容斥原理数论筛法

互质数

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

nn 个数字,a1,a2,...,ana_1,a_2,...,a_n。有一个集合,刚开始集合为空。然后有一种操作每次向集合中加入一个数字或者删除一个数字。每次操作给出一个下标 x(1xn)x(1\le x\le n),如果 axa_x 已经在集合中,那么就删除 axa_x;否则就加入 axa_x

问每次操作之后集合中互质的数字有多少对。

注意,集合中可以有重复的数字,两个数字不同当且仅当他们的下标不同。

比如有两个数字 a1=a2=1a_1=a_2=1。那么在经过两次操作 1,21,2 之后,集合内存在两个 11,有一对互质。

输入格式

从标准输入读入数据。

第一行包含两个整数 nnqq。表示数字的种类和查询数目。

第二行有 nn 个以空格分开的整数 a1,a2,...,ana_1,a_2,...,a_n,分别表示 nn 个数字。

接下来 qq 行,每行一个整数 xx,表示每次操作的下标。

输出格式

输出到标准输出。

对于每一个查询,输出当前集合中互质的数字有多少对。

5 6
1 2 3 4 6
1
2
3
4
5
1
0
1
3
5
6
2

子任务

对于 30%30\% 的数据,1n100,1q10001\le n\le 100,1\le q\le 1000

对于所有数据,$1\le n\le 10^5,1\le q\le 10^5,1\le a_i\le 5\times 10^5$。