From d8087b5da8e0ad1e5a2dc9257e6da4995a60c337 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Fri, 14 Feb 2025 09:11:58 +0800 Subject: [PATCH] update --- src/2/B3695.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/2/B3695.cpp b/src/2/B3695.cpp index 73a03af..96d7806 100644 --- a/src/2/B3695.cpp +++ b/src/2/B3695.cpp @@ -7,10 +7,13 @@ using ll = int64_t; constexpr ll maxn = 3e4; ll n,m,q; std::bitset bs[maxn+5]; -std::bitset none; +std::bitset none; int main(){ std::cin>>n>>m>>q; + for(ll i=1;i<=m;i++){ + none[i]=true; + } for(ll i=1;i<=n;i++){ static ll num; std::cin>>num; @@ -20,4 +23,21 @@ int main(){ bs[i][tmp]=true; } } + for(ll i=1;i<=q;i++){ + static ll f,x,y; + std::cin>>f>>x>>y; + if(f==1){ + bs[x]<<=y; + bs[x]&=none; + }else if(f==2){ + bs[x]>>=y; + bs[x]&=none; + }else if(f==3){ + std::cout<<(bs[x]&bs[y]).count()<<'\n'; + }else if(f==4){ + std::cout<<(bs[x]|bs[y]).count()<<'\n'; + }else if(f==5){ + std::cout<<(bs[x]^bs[y]).count()<<'\n'; + } + } } \ No newline at end of file