https://codeforces.com/contest/1097/problem/F

题意

有n个多重集,q次询问,4种询问

1. 将第x个多重集置为v

2. 将第y和z多重集进行并操作,并赋值给x

3. 将第y和z多重集进行乘操作,并赋值给x,乘操作:将y的每一个元素和z的每个元素的gcd放进多重集中

4. 询问第x个多重集中有多少个v,并将个数%2输出

题解

  • 因为个数%2,所以可以考虑用bitset
  • 操作1需要将一个数的因数放进x中,这样两个数相与就能得出两个数的公因数,方便操作3处理
  • 操作2对两个集合进行异或即可
  • 操作3对两个集合进行与就能得出两个集合所有数相互的公因数
  • 假如a,b的公因数是x的倍数,那么gcd(a,b)一定是x的倍数
  • \(g(n)=\sum_{n|d}f(d) =>f(n)=\sum_{n|d}\mu(\frac{d}{n})g(d)\),操作4需要先预处理出\(f(n)\),将\(f(n)\)放进一个多重集里,与x相与,然后x中1的个数就是答案

代码

#include<bits/stdc++.h>
#define M 7001
#define MAXN 100005
using namespace std;
bitset<M>miu[M];
bitset<M>a[MAXN];
int mu[M+5],pr[M],vi[M+5];
int n,q,x,v,y,z,kd,cnt;
void sieve(){
mu[1]=1;
for(int i=2;i<M;i++){
if(!vi[i]){mu[i]=-1;pr[++cnt]=i;}
for(int j=1;j<=cnt&&i*pr[j]<M;j++){
vi[i*pr[j]]=1;
if(i%pr[j]==0)break;
mu[i*pr[j]]=-mu[i];
}
}
for(int i=1;i<M;i++)
for(int j=i;j<M;j+=i)
if(mu[j/i])miu[i].set(j);
}
int main(){
sieve();
cin>>n>>q;
while(q--){
scanf("%d",&kd);
if(kd==1){
scanf("%d%d",&x,&v);
a[x].reset();
for(int i=1;i*i<=v;i++)
if(v%i==0){
a[x].set(i);a[x].set(v/i);
}
}
else if(kd==2){
scanf("%d%d%d",&x,&y,&z);
a[x]=a[y]^a[z];
}else if(kd==3){
scanf("%d%d%d",&x,&y,&z);
a[x]=a[y]&a[z];
}else{
scanf("%d%d",&x,&v);
bitset<M>tp=a[x]&miu[v];
printf("%d",tp.count()%2);
}
}
}

Hello 2019 F 莫比乌斯反演 + bitset的更多相关文章

  1. CF1097F Alex and a TV Show 莫比乌斯反演、bitset

    传送门 发现自己对mobius反演的理解比较浅显-- 首先我们只需要维护每一个数的出现次数\(\mod 2\)的值,那么实际上我们只需要使用\(bitset\)进行维护,每一次加入一个数将其对应次数异 ...

  2. [jzoj 6084] [GDOI2019模拟2019.3.25] 礼物 [luogu 4916] 魔力环 解题报告(莫比乌斯反演+生成函数)

    题目链接: https://jzoj.net/senior/#main/show/6084 https://www.luogu.org/problemnew/show/P4916 题目: 题解: 注: ...

  3. 【Codeforces 1097F】Alex and a TV Show(bitset & 莫比乌斯反演)

    Description 你需要维护 \(n\) 个可重集,并执行 \(m\) 次操作: 1 x v:\(X\leftarrow \{v\}\): 2 x y z:\(X\leftarrow Y \cu ...

  4. 【CCPC-Wannafly Winter Camp Day3 (Div1) F】小清新数论(莫比乌斯反演+杜教筛)

    点此看题面 大致题意: 让你求出\(\sum_{i=1}^n\sum_{j=1}^n\mu(gcd(i,j))\). 莫比乌斯反演 这种题目,一看就是莫比乌斯反演啊!(连莫比乌斯函数都有) 关于莫比乌 ...

  5. Mophues HDU - 4746 (莫比乌斯反演)

    Mophues \[ Time Limit: 10000 ms\quad Memory Limit: 262144 kB \] 题意 求出满足 \(gcd\left(a,b\right) = k\), ...

  6. Gcd HYSBZ - 2818 (莫比乌斯反演)

    Gcd \[ Time Limit: 10000 ms\quad Memory Limit: 262144 kB \] 题意 求 \(gcd\left(x,y\right) = p\) 的对数,其中\ ...

  7. [模板] 容斥原理: 二项式反演 / Stirling 反演 / min-max 容斥 / 子集反演 / 莫比乌斯反演

    //待更qwq 反演原理 二项式反演 若 \[g_i=\sum_{j=1}^i {\binom ij} f_j\] , 则有 \[ f_i=\sum_{j=1}^i (-1)^{i-j} {i \ch ...

  8. 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)

    链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...

  9. 狄利克雷卷积&莫比乌斯反演总结

    狄利克雷卷积&莫比乌斯反演总结 Prepare 1.\([P]\)表示当\(P\)为真时\([P]\)为\(1\),否则为\(0\). 2.\(a|b\)指\(b\)被\(a\)整除. 3.一 ...

随机推荐

  1. (十八)golang--defer关键字

    在函数中,程序员经常需要创建资源(比如,数据库连接,文件句柄,锁等),为了在函数执行完毕后,及时释放资源,go设计者提供defer(延时机制) 用defer申明的语句不会立即执行,而是被存入到defe ...

  2. mysql sql语句摘录

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  3. 【Zabbix】zabora批量部署

    zabora简化批量部署 目的:简化部署zabora,批量监控数据库的常用指标 1 数据库用户赋权 上传cre_arp_monitor.sh,并且部署用户. [root@oradb ~]# chown ...

  4. jQuery源码分析(九) 异步队列模块 Deferred 详解

    deferred对象就是jQuery的回调函数解决方案,它解决了如何处理耗时操作的问题,比如一些Ajax操作,动画操作等.(P.s:紧跟上一节:https://www.cnblogs.com/grea ...

  5. CodeForce 176C Playing with Superglue

    Two players play a game. The game is played on a rectangular board with n × m squares. At the beginn ...

  6. Greenplum集群或者Postgresql出现死锁肿么办?

    1.Greenplum集群或者Postgresql出现死锁肿么办? 由于Postgresql和Greenplum集群这数据库知识很深的,没有仔细研究,遇到问题真的不知道肿么处理,我遇到死锁,是采取了暴 ...

  7. vue入门案例

    1.技术在迭代,有时候你为了生活没有办法,必须掌握一些新的技术,可能你不会或者没有时间造轮子,那么就先把利用轮子吧. <!DOCTYPE html> <html> <he ...

  8. Winform中设置和获取DevExpress的RadioGroup的选中项的value值

    场景 Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  9. Xamarin移动开发备忘

    vs2017下: 1.debug用于本地生成和调试,release用于发布.区别主要在于: 安卓项目的生成选项属性中,开发者模式release是不勾的,而且高级里的cpu不同(debug是x86,re ...

  10. Vue新手入门教程

    谈谈我对Vue的理解 vue就是前端上的Java,前端上的C#.有个前端的虚拟DOM引擎,设计理念和Java,C#类似.我们只需要告诉DOM应该显示什么,而不用去操作DOM元素. 如何引用? 下面是一 ...