题解:P14124 [SCCPC 2021] Nihongo wa Muzukashii Desu
题目传送门
题意简化
多组测试数据,每组输入一个字符串,根据字符串结尾进行变化。
变化(来自 @csxx601cjy):
| 词语结尾 | 替换成 |
|---|---|
| chimasu | tte |
| rimasu | ^ |
| mimasu | nde |
| bimasu | ^ |
| nimasu | ^ |
| kimasu | ite |
| gimasu | ide |
| shimasu | shite |
特例:ikimasu 这一个词,直接输出 itte。
大概思路
没什么好说的,按变化表模拟即可
AC Code:
#include<bits/stdc++.h>
#pragma optimize (1,2,3,"inline")
using namespace std;
typedef long long ll;
ll n,t,i,j,k;
string a;
int main()
{
ios::sync_with_stdio();
cin.tie(0);
cout.tie(0);
cin>>t;
while(t--)
{
cin>>a;
n=a.size();
if(a[0]=='i'&&a[1]=='k'&&a[2]=='i'&&a[3]=='m'&&a[4]=='a'&&a[5]=='s'&&a[6]=='u')
{
cout<<"itte\n";
continue;
}
for(i=0;i<n;i++)
{
if(a[i]=='c'&&a[i+1]=='h'&&a[i+2]=='i'&&a[i+3]=='m'&&a[i+4]=='a'&&a[i+5]=='s'&&a[i+6]=='u'&&i+7==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"tte\n";
continue;
}
if(a[i]=='r'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"tte\n";
continue;
}
if(a[i]=='m'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"nde\n";
continue;
}
if(a[i]=='b'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"nde\n";
continue;
}
if(a[i]=='n'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"nde\n";
continue;
}
if(a[i]=='k'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"ite\n";
continue;
}
if(a[i]=='g'&&a[i+1]=='i'&&a[i+2]=='m'&&a[i+3]=='a'&&a[i+4]=='s'&&a[i+5]=='u'&&i+6==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"ide\n";
continue;
}
if(a[i]=='s'&&a[i+1]=='h'&&a[i+2]=='i'&&a[i+3]=='m'&&a[i+4]=='a'&&a[i+5]=='s'&&a[i+6]=='u'&&i+7==n)
{
for(j=0;j<i;j++)
cout<<a[j];
cout<<"shite\n";
continue;
}
}
}
return 0;
}