附件·3级题解
2026-03-23 19:23:34
发布于:浙江
3级题解,4,5级后续更新
此帖为gesp3级游记的附件,欢迎刷罐

T1 二进制回文串
暴力即可
#include <bits/stdc++.h>
using namespace std;
const int N = 9000;
int a[N];
int main()
{
int cnt = 0;
int n;
cin >> n;
for(int i = 1;i <= n;i++)
{
memset(a,0,sizeof(a));
int pos = 1;
int x = i;
while(x != 0)
{
a[pos] = x%2;
x /= 2;
pos++;
}
pos -= 1;
int l;
if(pos % 2 == 1) l = pos / 2 + 1;
else l = pos / 2;
bool flag = 1;
for(int j = 1;j <= l;j++)
{
if(a[j] != a[pos-j+1])
{
flag = 0;
break;
}
}
if(flag)
{
cnt++;
}
}
cout << cnt;
}
T2 凯撒密码
气死我了,比赛时忘写了一个+1
#include <iostream>
using namespace std;
int main()
{
string s1,s2;
cin >> s1 >> s2;
int x = s1[0]-s2[0];
string h1;
cin >> h1;
for(int i = 0;i < h1.length();i++)
{
h1[i]+=x;
if(h1[i] > 'Z')
{
h1[i] = (h1[i] - 'A')%26+'A';
}
if(h1[i] < 'A')
{
h1[i] = 'Z'-('A' - h1[i])%26+1;
}
}
cout << h1;
}
全部评论 1
我的代码短多了:D
7小时前 来自 河北
0代码能发下吗
7小时前 来自 浙江
0#include<iostream> using namespace std; int main(){ int n,ans=0; cin>>n; for(int i=1;i<=n;i++){ int j=i; string s="",s1=""; if(j%2==0)continue; while(j!=0){ char t=j%2+48; s+=t; j/=2; } for(int _=s.size()-1;_>=0;_--)s1+=s[_]; if(s==s1)ans++; } cout<<ans; }这是T1
6小时前 来自 河北
0#include<iostream> using namespace std; int main(){ string ming,an,s; cin>>ming>>an>>s; int pianyi=(an[0]-ming[0]); for(int i=0;i<s.size();i++){ if(s[i]-pianyi<'A')s[i]='Z'-('A'-s[i]+pianyi)+1; else s[i]-=pianyi; } cout<<s; }这是T2(ACGO会爆两个WA,考试是全过)
#include<iostream> using namespace std; int main(){ string ming,an,s; cin>>ming>>an>>s; int pianyi=(an[0]-ming[0]); for(int i=0;i<s.size();i++){ if(s[i]-pianyi<'A')s[i]='Z'-('A'-s[i]+pianyi)+1; else if(s[i]-pianyi>'Z')s[i]='A'+(s[i]-'Z'-pianyi)-1; else s[i]-=pianyi; } cout<<s; }修正版
6小时前 来自 河北
0





















有帮助,赞一个