转化为质数域上的操作,如果用莫反的话,记录因数的cnt。

其实莫反的推式子最后和容斥做法殊途同归了,容斥的系数就是莫比乌斯函数。

const int maxn = 2e5 + 5, maxa = 5e5 + 5;

int n, q, a[maxn], maxx;
int primes[maxa], tot, vis[maxa], mu[maxa];
vector<int> fac[maxa]; ll ans;
int g[maxa];
bool mark[maxn]; void Pre() {
mu[1] = 1;
for (int i = 2; i <= maxx; i++) {
if (!vis[i]) {
primes[++tot] = i;
mu[i] = -1;
}
for (int j = 1; j <= tot && (ll)primes[j] * i <= maxx; j++) {
vis[primes[j] * i] = 1;
if (i % primes[j] == 0) break;
mu[primes[j] * i] = -mu[i];
}
}5
for (int i = 1; i <= maxx; i++)
for (int j = 1; (ll)j * i <= maxx; j++)
fac[j * i].push_back(i);
} int main() {
read(n), read(q);
rep(i, 1, n) read(a[i]), maxx = max(maxx, a[i]);
Pre();
for (int i; q; q--) {
read(i);
if (!mark[i]) {
mark[i] = 1;
for (int d : fac[a[i]]) {
ans += mu[d] * g[d];
g[d]++;
}
} else {
mark[i] = 0;
for (int d : fac[a[i]]) {
g[d]--;
ans -= mu[d] * g[d];
}
}
writeln(ans);
}
return 0;
}

最新文章

  1. Intellij IDEA调试功能使用总结
  2. 【C#】【Thread】Barrier任务并行
  3. EasyUI配置和组件
  4. T-SQL 公用表表达式(CTE)
  5. 给ul中的li添加事件的多种方法
  6. 杂谈:HTML 5页面可视性API
  7. 北京Uber优步司机奖励政策(2月6日)
  8. 交叉编译中的 --sysroot 等等在编译时的作用
  9. Android RelativeLayout 布局android:layout_centerHorizontal=&quot;true&quot;注意
  10. 查看文件系统类型的Linux命令
  11. Struts2知识总结
  12. 局部权重线性回归(Locally weighted linear regression)
  13. web从入门开始(5)-----表单
  14. parsing:NLP之chart parser句法分析器
  15. @getMapping与@postMapping
  16. Excel 导入时如何下载模板信息(Java)
  17. C++ main()函数及其参数
  18. adnanh webhook 框架 hook 定义
  19. django-template-forloop
  20. IE8不支持数组的indexOf方法 如何解决

热门文章

  1. 存储过程IF --ELSE IF -- END IF 使用
  2. CentOS7 网络管理工具nmcli
  3. DBSCAN 聚类分析
  4. linux增加vlan网卡配置
  5. 【LeetCode】062. Unique Paths
  6. Oracle获取日期的特定部分
  7. Word直接发表博客测试
  8. 按钮交互loading ---- 转圈圈 加载
  9. Java异常控制机制和异常处理原则【转】
  10. php array数组(第二部分)