Week15 A ZJM與霍格沃茲

2021-10-06 23:01:16 字數 2599 閱讀 5432

zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題

題庫格式:[魔咒] 對應功能

背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 [魔咒],也可能是對應功能

zjm 需要識別這個題目給出的是 [魔咒] 還是對應功能,並寫出轉換的結果,如果在魔咒詞典裡找不到,輸出 「what?」

首先列出魔咒詞典中不超過100000條不同的咒語,每條格式為:

[魔咒] 對應功能

其中「魔咒」和「對應功能」分別為長度不超過20和80的字串,字串中保證不包含字元「[」和「]」,且「]」和後面的字串之間有且僅有乙個空格。魔咒詞典最後一行以「@end@」結束,這一行不屬於詞典中的詞條。

詞典之後的一行包含正整數n(<=1000),隨後是n個測試用例。每個測試用例佔一行,或者給出「[魔咒]」,或者給出「對應功能」。

每個測試用例的輸出佔一行,輸出魔咒對應的功能,或者功能對應的魔咒。如果在詞典中查不到,就輸出「what?」

sample input:

[expelliarmus] the disarming charm

[rictusempra] send a jet of silver light to hit the enemy

[tarantallegra] control the movement of one's legs

[serpensortia] shoot a snake out of the end of one's wand

[lumos] light the wand

[obliviate] the memory charm

[expecto patronum] send a patronus to the dementors

[accio] the summoning charm

@end@

4[lumos]

the summoning charm

[arha]

take me to the sky

sample output:

light the wand

accio

what?

what?

暴力map:

直接建立 [魔咒]->功能,功能->[魔咒]的字串對映。

但是每個字串都被存了兩邊,這樣,空間不允許。

字串雜湊

建立兩個map;

map[hash1] = index1,s1[index1] = 功能

map[hash2] = index2,s2[index2] = 魔咒

#include

#include

#include

using

namespace std;

map<

unsigned

long

long

,int

> positve, negtve;

string mozhou[

100010

], funct[

100010];

string s;

int n;

const

unsigned

long

long seed =7;

unsigned

long

long hash1, hash2, sed;

intmain()

i +=2

; p =

1; sed = seed;

while

(i < s.

size()

) positve[hash1]

= cnt;

negtve[hash2]

= cnt;

mozhou[cnt]

= s.

substr(1

, pos -1)

; funct[cnt]

= s.

substr

(pos +

2, s.

size()

-(pos +2)

);cnt++;}

cin >> n;

getchar()

;while

(n--)if

(positve.

count

(hash1)==1

) cout << funct[positve[hash1]

]<< endl;

else

cout <<

"what?"

<< endl;

}else

if(negtve.

count

(hash2)==1

) cout << mozhou[negtve[hash2]

]<< endl;

else

cout <<

"what?"

<< endl;}}

return0;

}

WEEK 15 A ZJM 與霍格沃茲

zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題 題庫格式 魔咒 對應功能 背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 魔咒 也可能是對應功能 zjm 需要識別這個題目給出的是 魔咒 還是對應功能,並寫出轉換的結果,如果在魔咒詞典裡找不到,輸出 ...

Week 15 作業A ZJM 與霍格沃茲

zjm 為了準備霍格沃茲的期末考試,決心背魔咒詞典,一舉拿下咒語翻譯題 題庫格式 魔咒 對應功能 背完題庫後,zjm 開始刷題,現共有 n 道題,每道題給出乙個字串,可能是 魔咒 也可能是對應功能 zjm 需要識別這個題目給出的是 魔咒 還是對應功能,並寫出轉換的結果,如果在魔咒詞典裡找不到,輸出 ...

Week15 作業A ZJM 與霍格沃茲

給出一系列二元組 原字串 翻譯字串 進行若干次查詢,給出原字串或翻譯字串,輸出對應的翻譯字串或原字串。首先給出若干行,每行乙個二元組 原字串 翻譯字串 最後一行以 end 結尾 之後一行給出乙個整數q,表示詢問次數 之後q行,每行乙個 原字串 或翻譯字串 輸出q行,每行輸出對應字串。expellia...