EOJ 3256 拼音魔法
模拟。
有$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 拼音魔法的更多相关文章
- A. 拼音魔法
A. 拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabyt ...
- 隐马尔科夫模型python实现简单拼音输入法
在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...
- iOS 汉字的拼音
获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...
- Oracle汉字转拼音package
--函数GetHzFullPY(string)用于获取汉字字符串的拼音 --select GetHzFullPY('中华人民共和国') from dual; --返回:ZhongHuaRenMinGo ...
- Ubuntu 下ibus拼音输入法启用 (ubuntu 16.04
Ubuntu 下ibus拼音输入法启用 我安装的是英文版的ubuntu 16.04,打开只带英文,并没有中文. 设置输入法为iBus 从system settings 进入language suppo ...
- JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...
- lumia手机wp系统应用列表如何设置按照拼音
1.安装应用多了就会这样·· 2.想用拼音排列,请把系统设置里的区域语言中的区域和格式改为中国,此时,屏幕壁纸上是"四月十五日". 3.想用笔画排列,请把系统设置里的区域语言中的区 ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
- Mono 3.2 测试NPinyin 中文转换拼音代码
C#中文转换为拼音NPinyin代码 在Mono 3.2下运行正常,Spacebuilder 有使用到NPinyin组件,代码兼容性没有问题. using System; using System. ...
随机推荐
- SpringCloud学习(1)——SpringCloud概述
微服务架构: 微服务架构是一种架构模式或者说是一种架构风格, 他提倡将单一应用程序划分成一组小的服务, 每个服务运行在其独立的进程中, 服务之间互相协调,互相配合, 为用户提供最终价值.服务之间采用轻 ...
- net-speeder
有的同学反映自己的搬瓦工速度慢,丢包率高.这其实和你的网络服务提供商有关.据我所知一部分上海电信的同学就有这种问题.那么碰到了坑爹的网络服务商,我们应该怎么办呢? duangduang~~~~~~有请 ...
- codevs 2488 绿豆蛙的归宿
2488 绿豆蛙的归宿 http://codevs.cn/problem/2488/ 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题目描述 Descrip ...
- java中集合去重2
1.对集合中的自动定义的对象去重: 自定义Person类,同时复写hashCode和equals方法 package collection; public class Person { private ...
- 【BZOJ】3495: PA2010 Riddle 2-SAT算法
[题意]有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都.n,m,k<=10^6. [算法]2-SAT,前后缀优化建图 [题解] ...
- TCP 传输控制协议(转)
开头先说几个协议: IP:网际协议 TCP:传输控制协议 Http:超文本传输协议 AMQP:高级消息队列协议 一:TCP是什么? TCP(Transmission Control Protocol ...
- HZ与Jiffies
2.4 内核定时器 内核中许多部分的工作都高度依赖于时间信息.Linux内核利用硬件提供的不同的定时器以支持忙等待或睡眠等待等时间相关的服务.忙等待时,CPU 会不断运转.但是睡眠等待时,进程将放弃C ...
- Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- PHP缓存加速插件 XCache 、 ZendOpcache 安装
PHP缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(OperateCode,简称opcode)文件,该文件是PHP代码的一种二进制表示方式.默 ...
- hashCode()与equals()区别
这两个方法均是超类Object自带的成员方法.Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.在不明确给出超类的情况下,Java会自 ...