A. Cirno’s Perfect Bitmasks Classroom
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3378a1af5b22216dcc4642ef36feb7f3.png)
void solve()
{
cin>>n;
int res=lowbit(n);
if(n<3)cout<<3<<endl;
else
{
if(res==n)cout<<res+1<<endl;
else cout<<res<<endl;
}
}
B. Patchouli’s Magical Talisman
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b01f2ff63508de284860fa46c49070a0.png)
void solve()
{
cin>>n;
int a=0,b=0;
vector<int>v;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x%2)a++;
else b++,v.pb(x);
}
if(a)cout<<b<<endl;
else
{
int res=INF;
for(auto x:v)
{
int k=0;
while(x%2==0)
{
x/=2;
k++;
}
res=min(res,k);
}
res+=b-1;
cout<<res<<endl;
}
}
C. Manipulating History
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5d03b793c51b162a653c8ebc6a311be0.png)
#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
#define x first
#define y second
#define LL long long
#define int LL
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define PII pair<int,int>
#define ll_INF 0x7f7f7f7f7f7f7f7f
#define INF 0x3f3f3f3f
#define debug(x) cerr << #x << ": " << x << endl
#define io ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
LL Mod(LL a,LL mod){return (a%mod+mod)%mod;}
LL lowbit(LL x){return x&-x;}
LL qmi(LL a,LL b,LL mod) {LL ans = 1; while(b){ if(b & 1) ans = ans * (a % mod) % mod; a = a % mod * (a % mod) % mod; b >>= 1;} return ans; }
int _;
const int N=500010;
int n,m;
int w[N];
struct node
{
int l,r;
int sum,lmax,rmax,tmax;
}tr[4*N];
void pushup(node &u,node &l,node &r)
{
u.sum=l.sum+r.sum;
u.lmax=max(l.lmax,l.sum+r.lmax);
u.rmax=max(r.rmax,r.sum+l.rmax);
u.tmax=max(max(l.tmax,r.tmax),l.rmax+r.lmax);
}
void pushup(int u)
{
pushup(tr[u],tr[u<<1],tr[u<<1|1]);
}
void build(int u,int l,int r)
{
if(l==r)tr[u]={l,r,w[r],w[r],w[r],w[r]};
else
{
tr[u]={l,r};
int mid=l+r>>1;
build(u<<1,l,mid),build(u<<1|1,mid+1,r);
pushup(u);
}
}
void modify(int u,int x,int v)
{
if(tr[u].l==x&&tr[u].r==x)tr[u]={x,x,v,v,v,v};
else
{
int mid=tr[u].l+tr[u].r>>1;
if(x<=mid)modify(u<<1,x,v);
else modify(u<<1|1,x,v);
pushup(u);
}
}
node query(int u,int l,int r)
{
if(tr[u].l>=l&&tr[u].r<=r)return tr[u];
else
{
int mid=tr[u].l+tr[u].r>>1;
if(r<=mid)return query(u<<1,l,r);
else if(l>mid)return query(u<<1|1,l,r);
else
{
auto left=query(u<<1,l,r);
auto right=query(u<<1|1,l,r);
node res;
pushup(res,left,right);
return res;
}
}
}
void solve()
{
cin>>n;
map<char,int>mp;
for(int i=0;i<2*n;i++)
{
string s;
cin>>s;
for(auto x:s)mp[x]++;
}
string s;
cin>>s;
for(auto x:s)mp[x]++;
for(auto x:mp)
{
if(x.y%2)cout<<x.x;
}
cout<<endl;
}
signed main()
{
io;
cin>>_;
while(_--)
solve();
return 0;
}
D. The Enchanted Forest
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8141bcca895746195dcb18b86b2c996b.png)
#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
#define x first
#define y second
#define LL long long
#define int LL
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define PII pair<int,int>
#define ll_INF 0x7f7f7f7f7f7f7f7f
#define INF 0x3f3f3f3f
#define debug(x) cerr << #x << ": " << x << endl
#define io ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
LL Mod(LL a,LL mod){return (a%mod+mod)%mod;}
LL lowbit(LL x){return x&-x;}
LL qmi(LL a,LL b,LL mod) {LL ans = 1; while(b){ if(b & 1) ans = ans * (a % mod) % mod; a = a % mod * (a % mod) % mod; b >>= 1;} return ans; }
int _;
int n,m;
const int N=2e5+10;
int s[N];
void solve()
{
cin>>n>>m;
int res=0;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
s[i]=s[i-1]+x;
}
if(m>=n)
{
res+=s[n]+m-n+(n-1)*(m-n+1+m-1)/2;
cout<<res<<endl;
}
else
{
for(int i=1;i+m-1<=n;i++)
res=max(res,s[i+m-1]-s[i-1]);
res+=(m-1)*m/2;
cout<<res<<endl;
}
}
signed main()
{
io;
cin>>_;
while(_--)
solve();
return 0;
}