模拟。

有$a$先标$a$,其次是$o$和$e$,$o$和$e$在韵母中不会同时存在。最后是$u$和$i$,这两个字母在韵母中可能同时存在,标在后面的那个。输出那些字符的话直接输出就可以了。

举几个例子:

3

shui2

Case 1: shuí

liu2

Case 2: liú

lve4

Case 3: lüè

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; char s[10000];
int T, len, cas = 1;
int diao; void A()
{
if(diao==1) printf("ā");
if(diao==2) printf("á");
if(diao==3) printf("ǎ");
if(diao==4) printf("à");
} void E()
{
if(diao==1) printf("ē");
if(diao==2) printf("é");
if(diao==3) printf("ě");
if(diao==4) printf("è");
} void I()
{
if(diao==1) printf("ī");
if(diao==2) printf("í");
if(diao==3) printf("ǐ");
if(diao==4) printf("ì");
} void O()
{
if(diao==1) printf("ō");
if(diao==2) printf("ó");
if(diao==3) printf("ǒ");
if(diao==4) printf("ò");
} void U()
{
if(diao==1) printf("ū");
if(diao==2) printf("ú");
if(diao==3) printf("ǔ");
if(diao==4) printf("ù");
} void V()
{
if(diao==1) printf("ǖ");
if(diao==2) printf("ǘ");
if(diao==3) printf("ǚ");
if(diao==4) printf("ǜ");
} void work()
{
int f=0;
for(int i=0;i<len-1;i++) if(s[i]=='a') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='a') A();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='e') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='e') E();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='o') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='o') O();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='v') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='v') V();
else printf("%c",s[i]);
}
printf("\n");
return ;
} for(int i=len-1;i>=0;i--)
{
if(s[i]=='i') { f=1; break; }
if(s[i]=='u') { f=2; break; }
} if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='i') I();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} if(f==2)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='u') U();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} } int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%s",s);
len = strlen(s); printf("Case %d: ",cas++);
if(s[len-1]>='0'&&s[len-1]<='9')
{
diao = s[len-1]-'0';
work();
}
else
{
for(int i=0;i<len;i++)
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
printf("\n");
}
}
return 0;
}

EOJ 3256 拼音魔法的更多相关文章

  1. A. 拼音魔法

    A. 拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabyt ...

  2. 隐马尔科夫模型python实现简单拼音输入法

    在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...

  3. iOS 汉字的拼音

    获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...

  4. Oracle汉字转拼音package

    --函数GetHzFullPY(string)用于获取汉字字符串的拼音 --select GetHzFullPY('中华人民共和国') from dual; --返回:ZhongHuaRenMinGo ...

  5. Ubuntu 下ibus拼音输入法启用 (ubuntu 16.04

    Ubuntu 下ibus拼音输入法启用 我安装的是英文版的ubuntu 16.04,打开只带英文,并没有中文. 设置输入法为iBus 从system settings 进入language suppo ...

  6. JavaScript 汉字与拼音互转终极方案 附JS拼音输入法

    转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...

  7. lumia手机wp系统应用列表如何设置按照拼音

    1.安装应用多了就会这样·· 2.想用拼音排列,请把系统设置里的区域语言中的区域和格式改为中国,此时,屏幕壁纸上是"四月十五日". 3.想用笔画排列,请把系统设置里的区域语言中的区 ...

  8. SQL汉字转拼音函数-支持首字母、全拼

    SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...

  9. Mono 3.2 测试NPinyin 中文转换拼音代码

    C#中文转换为拼音NPinyin代码  在Mono 3.2下运行正常,Spacebuilder 有使用到NPinyin组件,代码兼容性没有问题. using System; using System. ...

随机推荐

  1. bzoj 2820 / SPOJ PGCD 莫比乌斯反演

    那啥bzoj2818也是一样的,突然想起来好像拿来当周赛的练习题过,用欧拉函数写掉的. 求$(i,j)=prime$对数 \begin{eqnarray*}\sum_{i=1}^{n}\sum_{j= ...

  2. Uva5211/POJ1873 The Fortified Forest 凸包

    LINK 题意:给出点集,每个点有个价值v和长度l,问把其中几个点取掉,用这几个点的长度能把剩下的点围住,要求剩下的点价值和最大,拿掉的点最少且剩余长度最长. 思路:1999WF中的水题.考虑到其点的 ...

  3. css各种姿势的水平居中

    首先是最常用的,利用margin属性的auto来进行水平居中 margin: 0 auto; 其中0是指上下的margin,auto是左右的margin,margin这个属性的简写是按顺时针走的,也就 ...

  4. Django之前端插件定制之表头

    什么是插件? 插件只是辅助,是开发过程中的一个阶段.一般项目一期会用各种插件,迅速将功能.界面搭出来,二期时就改成自己的代码了.大点的公司都有自己的js库,自己开发类似jquery的库. 那接下来就写 ...

  5. TypeScript在node项目中的实践

    TypeScript在node项目中的实践 TypeScript可以理解为是JavaScript的一个超集,也就是说涵盖了所有JavaScript的功能,并在之上有着自己独特的语法.最近的一个新项目开 ...

  6. 背包DP FOJ 2214

    题目:http://acm.fzu.edu.cn/problem.php?pid=2214 (http://www.fjutacm.com/Problem.jsp?pid=2053) 这题看起来是一题 ...

  7. Linux下搜索命令

    linux下用于查找文件的5个命令,有需要的朋友可以参考下.包括find,whereis,locate,which与type. linux下用于查找文件的5个命令,有需要的朋友可以参考下.包括find ...

  8. C# 开发(创蓝253)手机短信验证码接口

    创蓝253: https://www.253.com/ #region 获取手机验证码(创蓝253) /// <summary> /// 获取手机验证码(创蓝253) /// </s ...

  9. linux动态库编译和使用详细剖析 - 后续

    引言 - 也许是修行 很久以前写过关于动态库科普文章, 废话反正是说了好多. 核心就是在 linux 上面玩了一下 dlopen : ) linux动态库编译和使用详细剖析 - https://www ...

  10. Tutorial 7: Schemas & client libraries

    转载自:http://www.django-rest-framework.org/tutorial/7-schemas-and-client-libraries/ Tutorial 7: Schema ...