A 拼音魔法 模擬)

2021-08-01 00:21:39 字數 2764 閱讀 6065

摸了200+,丟人啊

time limit per test:1.0 seconds

time limit all tests:1.0 seconds

memory limit:256 megabytes

accept / submit:341 / 2134

魔法學校小學一年級有一種題。就是給乙個字的拼音,給乙個聲調,讓你正確地注音。但魔法老師給了巨量的題,你不用魔法根本不可能做完。所以現在要讓你發明一種魔法完成這個任務。

問題已經講完了,下面開始教授漢語。(會漢語或者自認為會漢語的可以自動跳過)

漢語中乙個字的拼音由聲母和韻母兩部分組成,在極少數情況下也會沒有聲母,但一定有韻母。

一般認為,聲母有 b, p, m, f, d, t, l, n, g, k, h, j, q, x, z, c, s, zh, ch, sh, r, y, w;韻母有:a, e, o, i, u, ü, ai, ei, ui, ao, ou, iu, ie, üe, er, an, en, in, un, ün, ang, eng, ing, ong。

不是所有的字母都能組合的,組合的時候有時會發生一些神奇的事情,例如 üe 變成了 ue。但是標調規則有如下口訣:

有 a 先找 a,沒 a 找 o e,i u 併排標在後,這樣標調不會錯。

只有下面列出的元素可能會被標調。請按照下表輸出(尤其注意 a 不要輸出成 ɑ 了):

輔助材料:由教育部公布的拼音方案。如果有描述不一致的地方,請以本題描述為準。

第一行乙個整數 t

(1≤t≤105

) 。

下面 t

行,每行乙個拼音:拼音聲調在各個拼音之後,用數字 [1-4] 進行表示。例如zhong1 guo2。沒有數字的說明是輕聲,不用標調。

按照國際慣例,輸入檔案全部由 ascii 編碼組成。üv來代替。但在輸出中,應仍然用ü來表示。

對於每一組資料,輸出case x: y。其中 x 是從 1 開始的測試資料編號,y 是乙個拼音標調後的答案。

注意:對於非 ascii 字元的輸出,請使用 utf-8 編碼。

input

5

zhong1

guo2

meque1

nv3

output

case 1: zhōng

case 2: guó

case 3: me

case 4: quē

case 5: nǚ

會 c/c++ 的魔法師最可愛了。

#include #include #include using namespace std;

int t;

const int maxn = 1e5+10;

string str[maxn];

string s[5][6]=

, ,,,

};int main()

// for(int i=0;i<5;i++)

// {

// for(int j=0;j<6;j++)

// {

// cout << s[i][j] <='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][0] ;

for(int l=j+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][3] ;

for(int l=j+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][1] ;

for(int l=j+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][4] ;

for(int l=k+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][2] ;

for(int l=k+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][2] ;

for(int l=j+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][4] ;

for(int l=j+1; l='a'&&str[i][str[i].length()-1]-'1'<='z')str[i]+="0";

cout << s[str[i][str[i].length()-1]-'0'][5] ;

for(int l=j+1; l

EOJ 3256 拼音魔法

time limit per test 1.0 seconds time limit all tests 1.0 seconds memory limit 256 megabytes 魔法學校小學一年級有一種題。就是給乙個字的拼音,給乙個聲調,讓你正確地注音。但魔法老師給了巨量的題,你不用魔法根本不...

教主的魔法 模擬

可以說是一些塊狀資料結構,用分塊陣列來進行乙個維護,然後對於每個被完整覆蓋的塊用乙個永久化標記來進行儲存一下,一道模板題。分塊陣列模版 include include include include include include include include include include in...

NOIP模擬 魔法數字

在數論領域中,人們研究的基礎莫過於數字的整除關係。一般情況下,我們說整除總在兩個數字間進行,例如 a b a能整除b 表示 b 除以 a 的餘數為 0 我們稱乙個數字 x 是魔法的,當且僅當 x 是整數,且它能被 k 及 k 以上種一位數整除,要求這若干種一位數均在 x 的十進位制表示中出現。給出整...