专栏文章

题解:P14124 [SCCPC 2021] Nihongo wa Muzukashii Desu

P14124题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minq3exp
此快照首次捕获于
2025/12/02 06:30
3 个月前
此快照最后确认于
2025/12/02 06:30
3 个月前
查看原文

题意

给我们一些单词,按一定的规则转换后输出:
  • 单词结尾为chimasu,替换成tte
  • 单词结尾为rimasu,替换成tte
  • 单词结尾为mimasu,替换成nde
  • 单词结尾为bimasu,替换成nde
  • 单词结尾为nimasu,替换成nde
  • 单词结尾为kimasu,替换成ite
  • 单词结尾为gimasu,替换成ide
  • 单词结尾为shimasu,替换成shite
  • 特殊情况:当单词为ikimasu,直接输出itte

思路

一开始先将特殊情况给考虑了,因为单词结尾后 55 位一定相同,所以我们只需要考虑倒数第 66 位和倒数第 77 位。
当倒数第 66 位不为 hh 时,我们直接替换成该替换的规则字母,如果倒数第 66 位为 hh,我们就再看倒数第 77 位的数,然后在讨论倒数第 77 位的数。
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t;
string s;
signed main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>t;
	while(t--)
	{
		cin>>s;
		if(s=="ikimasu")
		{
			cout<<"itte\n";
			continue;
		}
		char b=s[s.size()-6];
		char c=s[s.size()-7];
		for(int i=0;i<s.size()-7;i++) cout<<s[i]; 
		if(b=='r') cout<<c<<"tte";
		if(b=='m') cout<<c<<"nde";
		if(b=='b') cout<<c<<"nde";
		if(b=='n') cout<<c<<"nde";
		if(b=='k') cout<<c<<"ite";
		if(b=='g') cout<<c<<"ide";
		if(b=='h')
		{
			if(s[s.size()-7]=='c') cout<<"tte";
			else cout<<"shite"; 
		}
		cout<<"\n";
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...