2025.10.02代码暂存
今天写的2025重庆市赛代码,没带U盘,暂时丢这。
A
#include<bits/stdc++.h>
using namespace std;
inline void solve()
{
int n;
cin>>n;
vector<int> a(n+1),b(n+1);
for(int i=0;i<n;++i)cin>>a[i],b[i]=a[i];
for(int i=1;;i++)
{
int ck=1;
for(int j=0;j<n;++j)ck&=a[j]==a[0];
if(ck)return cout<<i-1<<'\n',void();
for(int j=0;j<n;++j)b[j]=a[j]|a[(i+j)%n];
for(int j=0;j<n;++j)a[j]=b[j];
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);
int T;cin>>T;
while(T--)solve();
return 0;
}
C
#include<bits/stdc++.h>
using namespace std;
inline void solve()
{
int n;
cin>>n;
vector<int> a(n+1),b(n+1);
for(int i=0;i<n;++i)cin>>a[i],b[i]=a[i];
for(int i=1;;i++)
{
int ck=1;
for(int j=0;j<n;++j)ck&=a[j]==a[0];
if(ck)return cout<<i-1<<'\n',void();
for(int j=0;j<n;++j)b[j]=a[j]|a[(i+j)%n];
for(int j=0;j<n;++j)a[j]=b[j];
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);
int T;cin>>T;
while(T--)solve();
return 0;
}
F
#include<bits/stdc++.h>
using namespace std;
inline void solve()
{
int a,b,c;
cin>>a>>b>>c;
if(a>b)cout<<"win\n";
else if(c>b)cout<<"WIN\n";
else cout<<"nowin\n";
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);
int T;cin>>T;
while(T--)solve();
return 0;
}
H
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N],b[N],c[N];
int n;
inline void solve()
{
cin>>n;
for(int i=1;i<=n;++i)cin>>a[i];
for(int i=1;i<=n;++i)cin>>b[i];
for(int i=1;i<=n;++i)cin>>c[i];
int ck=1;
vector<int> va,vb;
for(int i=1;i<=n;++i)
{
if(!c[i])continue;
va.push_back(a[i]);
vb.push_back(b[i]);
}
for(int i=0;i<va.size();++i)
{
if(va[i]!=vb[i])return cout<<"No\n",void();
}
cout<<"Yes\n";
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);
int T;cin>>T;
while(T--)solve();
return 0;
}
J
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int vis[N],deg[N],d[N];
char c[N];
vector<int> e[N];
int n;
vector<int> choose;
inline int calc(char col)
{
queue<int> q;
for(int v:choose)if(c[v]==col)q.push(v);
while(q.size())
{
int x=q.front();q.pop();
cout<<x<<' ';
vis[x]=1;
for(int v:e[x])
{
if(vis[v])continue;
d[v]--;
if(d[v]==1&&c[v]==col)q.push(v);
}
}
cout<<'\n';
int ans=0;
for(int i=1;i<=n;++i)ans+= !vis[i] && c[i]==col;
return ans;
}
inline void reset()
{
memset(vis,0,sizeof vis);
for(int i=1;i<=n;++i)d[i]=deg[i];
}
inline void solve()
{
cin>>n;
for(int i=1;i<=n;++i)cin>>c[i];
for(int i=1;i<=n;++i)cout<<c[i]<<" \n"[i==n];
for(int i=1,u,v;i<=n-1;++i)
{
cin>>u>>v;
e[u].push_back(v);
e[v].push_back(u);
deg[u]++,deg[v]++;
}
for(int i=1;i<=n;++i)if(deg[i]==1)choose.push_back(i);
int ans=0;
reset(),ans+=calc('R');
reset(),ans+=calc('G');
reset(),ans+=calc('B');
cout<<ans<<'\n';
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
return solve(),0;
}
L
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
const int MOD=998244353;
int tmp[N];
deque<int> q;
int f=0;
int n;
int ans=0;
inline void rep()
{
if(f)
{
ans=ans*2%MOD;
return ;
}
else
{
if(2*q.size()<n)
{
int top=0,sz=q.size();
for(int i=0;i<sz;++i)tmp[++top]=q[i];
for(int i=1;i<=sz;++i)q.push_back(tmp[i]);
}
else
{
int top=0,sz=q.size();
for(int i=0;i<sz;++i)tmp[++top]=q[i];
q.clear();
int res=n-sz;
for(int i=sz-res+1;i<=sz;++i)q.push_back(tmp[i]);
for(int i=1;i<=sz;++i)q.push_back(tmp[i]);
f=1;
}
ans=ans*2%MOD;
}
}
inline void solve()
{
cin>>n;
string op;
for(int i=1,x;i<=n;++i)
{
cin>>op;
if(op=="Push")
{
cin>>x;
ans+=x,ans%=MOD;
q.push_back(x);
if(q.size()==n)q.pop_front();
}
else if(op=="Pop")
{
ans=(ans-q.back()+MOD)%MOD;
q.pop_back();
}
else
{
rep();
}
cout<<ans<<'\n';
}
}
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);
int T=1;
while(T--)solve();
return 0;
}
为什么要练,为什么要写?
引用一句让我幡然悔悟的话:
“练了不一定写的出来正解,不练一定写不出来正解”
本文来自博客园,作者:Hanggoash,转载请注明原文链接:https://www.cnblogs.com/Hanggoash/p/19123784

浙公网安备 33010602011771号