模拟。

有$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. 前端PHP入门-014-参数的引用

    我们学习了变量的引用,我们来回顾一下知识: <?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'.$b; ?> 而函数的参数 ...

  2. UVA 10479 The Hendrie Sequence

    https://vjudge.net/problem/UVA-10479 打表找规律: 1.根据n可以确定第n项在上表中第i行 2.减去前i-1行,就得到了n在第i行的第j个 3.第i行的规律:1个i ...

  3. 给APP增加RSA签名

    RSA签名,Google主要用于APP的来源控制与结算.所谓的结算,也是就是控制了APP只有使用现在机子上登录的Google账户从Google市场曾经下载过该APP的才能够使用,这样也就达到了app销 ...

  4. bzoj3524/2223 [Poi2014]Couriers

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3524 http://www.lydsy.com/JudgeOnline/problem.ph ...

  5. 【BZOJ】4316: 小C的独立集 静态仙人掌

    [题意]给定仙人掌图,求最大独立集(选择最大的点集使得点间无连边).n<=50000,m<=60000. [算法]DFS处理仙人掌图 [题解]参考:[BZOJ]1023: [SHOI200 ...

  6. js和php的时间戳和时间的转化

    js时间戳转化为时间 //时间戳转时间 function time(sj) { var now = new Date(sj*1000); var year =now.getFullYear(); va ...

  7. 树形DP初探•总结

    这几天,我自学了基础的树形DP,在此给大家分享一下我的心得.   首先,树形DP这种题主要就是解决有明确分层次且无环的树上动态规划的题.这种题型一般(注意只是基础.普通的情况下)用深度优先搜索来解决实 ...

  8. 【洛谷 P4134】 [BJOI2012]连连看(费用流)

    题目链接 首先是可以\(O(n^2)\)枚举出所有符合要求的点对的,然后考虑建图. 还是拆点把每个点拆成入点和出点,源点连入点,出点连汇点,流量都是1,费用都是0. 然后对于没对符合要求的\((x,y ...

  9. HDU 1045 Fire Net (深搜)

    题目链接 Problem DescriptionSuppose that we have a square city with straight streets. A map of a city is ...

  10. windows程序设计.第一个windos程序

    Windows程序设计(第5版) windows程序需要调用API. 第一个Windows程序 /*HelloMsg.c -- Displays "Hello World!" in ...