2025CSP-J游记
今年是最后一次打J组了,考的还可以。
上考场了,心想必将 J组 \(AK\),我带着信心又有点慌进考场了。
先看 \(T_1\)
\(T_1\)
我感觉隔壁同学(好像是华辰的)语文挺好,看题好快,迅速开打。
\(应该是“最难的题”了吧!\)
一眼题。
直接吹泡泡文件上
#include <bits/stdc++.h>
#define int long long
using namespace std;
string s;
int a[1000005],n;
signed main()
{
cin>>s;
int l=s.size();
for(int i=0;i<l;i++)
if(isdigit(s[i]))a[++n]=s[i]-'0';
sort(a+1,a+1+n);
for(int i=n;i;i--)cout<<a[i];
return 0;
}
\(T_2\)
\(也是一眼题。这不暴力吗?\)
\(直接吹泡泡文件上\)
#include <bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int n,m,a[1005];
bool cmp(int a,int b)
{
return a>b;
}
signed main()
{
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n*m;i++)
{
scanf("%lld",&a[i]);
}
int x=a[1],y=0;
sort(a+1,a+1+n*m,cmp);
for(int i=1;i<=n*m;i++)
{
if(a[i]==x)y=i;
}
int se=0,A=0,B=0;
for(int i=1;i<=m;i++)
{
se+=n;
if(y>se)continue;
se-=n;
y-=se;
if(i&1)A=i,B=y;
else A=i,B=n-y+1;
break;
}
cout<<A<<" "<<B;
return 0;
}
\(T_3\)
\(注意隔壁已经停止写题了,好像是在T_3停止了·······\)
\(先想了一下,一眼dp\)
\(常规设状态,设dp_i表示以i为结尾的最大答案。\)
\(Sum_i表示 [1,i] 的异或和。题目要求(i,j)满足[i,j]的异或和等于K,那不就是Sum_j \oplus Sum_{i-1}=K的最大个数吗?\)
#include <bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int n,a[500005],f[500005],sum[500005],k;
map<int,int>mp;
signed main()
{
// freopen("1.in","r",stdin);
scanf("%lld%lld",&n,&k);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
sum[i]=sum[i-1];
sum[i]^=a[i];
}
mp[k]=0;
for(int i=1;i<=n;i++)
{
f[i]=f[i-1];
if(mp[sum[i]]||sum[i]==k)
f[i]=max(f[i],f[mp[sum[i]]]+1ll);
mp[sum[i]^k]=i;
}
printf("%lld\n",f[n]);
return 0;
}
\(T_4\)
感觉隔壁没动静了,咦\(?\),有那么难吗\(?\)
开始看题。
诶,我有一计,这不类似于背包的 \(dp\) 么。
键盘敲起。
#include <bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int n,a[5005],f[5005];
signed main()
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
sort(a+1,a+1+n);
f[0]=1;
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=a[i]+1;j<=5001ll;j++)ans+=f[j],ans%=mod;
for(int j=5001ll;j>=0;j--)
f[min(5001ll,a[i]+j)]+=f[j],f[min(5001ll,a[i]+j)]%=mod;
}
printf("%lld",ans);
return 0;
}
大样例直接过。
一个半小时全部cao过,哎,今年真不难。
\(后面玩了小恐龙,surf的离线小游戏,还不错。\)
但第\(S\)组可不太简单。
总结
今年可能圆了我的 \(AK\) 梦,虽然真实成绩没出,但估分 \(400\)。

浙公网安备 33010602011771号