E. Mike and Foam(容斥原理)「建议收藏」

E. Mike and Foam(容斥原理)

大家好,又见面了,我是全栈君。

E. Mike and Foam

Mike is a bartender at Rico’s bar. At Rico’s, they put beer glasses in a special shelf. There are n kinds of beer at Rico’s numbered from 1 to n. i-th kind of beer has ai milliliters of foam on it.


E. Mike and Foam(容斥原理)「建议收藏」

Maxim is Mike’s boss. Today he told Mike to perform q queries. Initially the shelf is empty. In each request, Maxim gives him a number x. If beer number x is already in the shelf, then Mike should remove it from the shelf, otherwise he should put it in the shelf.

After each query, Mike should tell him the score of the shelf. Bears are geeks. So they think that the score of a shelf is the number of pairs (i, j) of glasses in the shelf such that i < j and E. Mike and Foam(容斥原理)「建议收藏」 where E. Mike and Foam(容斥原理)「建议收藏」 is the greatest common divisor of numbers a and b.

Mike is tired. So he asked you to help him in performing these requests.

Input

The first line of input contains numbers n and q (1 ≤ n, q ≤ 2 × 105), the number of different kinds of beer and number of queries.

The next line contains n space separated integers, a1, a2, … , an (1 ≤ ai ≤ 5 × 105), the height of foam in top of each kind of beer.

The next q lines contain the queries. Each query consists of a single integer integer x (1 ≤ x ≤ n), the index of a beer that should be added or removed from the shelf.

Output

For each query, print the answer for that query in one line.

Sample test(s)
Input
5 6
1 2 3 4 6
1
2
3
4
5
1

Output
0
1
3
5
6
2

题意简单易懂,我就不说了。。。

题解:题目能够转化为,在一个动态的集合中。没增加一个数。或取出一个数后,剩下的数中互质的有多少对。注意是无序的。 由于在题目的数据范围内质因子的数量非常少,复杂度基本上能够忽略不计,所以我们能够对每个新加进去的数。或者取出来的数进行质因子分解。然后通过容斥原理,先算出集合中有多少个与其不互质,这个非常easy算出来吧!

(假设想不出来能够看下我的代码,就是通过一个数组来计数,挺简单)。知道了不互质的。自然就知道互质了辣!

然后就答案减去或者加上互质的数就能够了。 时间复杂度预计10^7级别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116365.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 水牛城66有看点不_acwing是什么

    水牛城66有看点不_acwing是什么给定一张 L 个点、P 条边的有向图,每个点都有一个权值 f[i],每条边都有一个权值 t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数 L 和 P。接下来 L 行每行一个整数,表示 f[i]。再接下来 P 行,每行三个整数 a,b,t[i],表示点 a 和 b 之间存在一条边,边的权值为 t[i]。输出格式输出一个数表示结果,保留两位小数。数据范围2≤L≤1000,2≤P≤50

    2022年8月9日
    6
  • C++ GetUserName()

    C++ GetUserName()

    2022年3月12日
    41
  • 静态iP与权限更改[通俗易懂]

    静态iP与权限更改[通俗易懂]静态iP与权限更改

    2022年4月22日
    42
  • 开源自动化运维平台Spug

    开源自动化运维平台Spug开源自动化运维平台SpugSpug演示环境特性安装Docker安装安装步骤1.安装docker2.拉取镜像3.启动容器4.初始化5.访问测试6.版本升级SpugSpug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。官网地址:https://spug.cc使用文档:https://spug.cc/docs/about-spug/更新日志:https://spug.cc

    2022年5月17日
    56
  • Redis之压缩列表ziplist

    Redis是基于内存的nosql,有些场景下为了节省内存redis会用“时间”换“空间”。ziplist就是很典型的例子。ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是quicklist)这些键的常规底层实现如下:list键:双向链表 hash键:字典di…

    2022年4月9日
    80
  • 玩转跨境电商_个人如何做跨境电商

    玩转跨境电商_个人如何做跨境电商近日日本最大二手交易平台Mercari日前对外宣布,将与阿里巴巴合作启动跨境销售。不久后,Mercari将登陆淘宝和闲鱼,消费者下单后,由电商服务平台BEENOS负责代购,随后将货物发往国内。Mercari作为日本最大二手交易平台,一直以来在亚洲范围内都久负盛名,而闲鱼作为国内首屈一指的二手电商平台,二者的联合碰撞起的全新火花,能打开跨境二手电商的新链路吗?二手与跨境,电商后意识形态的新鸾凤自流量为尊的互联网商业态势席卷之后,电商在不停演变,从最初的图书到衣物综合,再到各垂直电商、社交电商…

    2022年10月4日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号