P8573 「DTOI-2」星之灵 题解
The Solution of P8573
题意:
给出
假定输入不断循环,询问
关键:
仔细阅读样例,不难发现,当 "CapsLock" 为奇数个时,不同的“回合”里,字符串大小写变化不一。针对此问题,可以将输入读入两边,这样保证 "CapsLock" 的数量为偶数个,从而达到创造规律的效果。
Code:
详见代码。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int n,q;
bool flag = false;
long long x;
string s_now,s_all;
vector<string> a;
string change_back(string s,bool flag)
{
if(flag == false)
return s;
else
{
for(int i = 0 ; i< s.length() ; i++)
{
if('a'<= s[i] && s[i] <= 'z')
s[i] = s[i]-'a'+'A';
else
s[i] = s[i]-'A'+'a';
}
return s;
}
}
int main()
{
scanf("%d",&n);
for(int i = 1 ; i<= n ; i++)
{
cin>>s_now;
if(s_now == "CapsLock")
flag = !flag;
else
{
a.push_back(change_back(s_now,flag));
}
}
long long u = a.size();
if(flag == true)
{
for(long long i = 0 ; i< u ; i++)
{
a.push_back(change_back(a[i],true));
}
}
long long tot = a.size();
scanf("%d",&q);
while(q--)
{
scanf("%lld",&x);
if(x <= tot)
cout<<a[x-1]<<'\n';
else
{
x %= tot;
if(x == 0)
x = tot;
cout<<a[x-1]<<'\n';
}
}
return 0;
}
修改日志:
2022年10月10日
第一次审核未通过。修改:删除末尾无意义内容,增加变量字母Latex 并提交第二次。