原題目:
哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。
給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能;當哈利需要某個功能但不知道該用什麼魔咒時,你的程式要替他找到相應的魔咒。如果他要的魔咒不在詞典中,就輸出「what?」
input
首先列出詞典中不超過100000條不同的魔咒詞條,每條格式為:
[魔咒] 對應功能
其中「魔咒」和「對應功能」分別為長度不超過20和80的字串,字串中保證不包含字元「[」和「]」,且「]」和後面的字串之間有且僅有乙個空格。詞典最後一行以「@end@」結束,這一行不屬於詞典中的詞條。
詞典之後的一行包含正整數n(<=1000),隨後是n個測試用例。每個測試用例佔一行,或者給出「[魔咒]」,或者給出「對應功能」。
output
每個測試用例的輸出佔一行,輸出魔咒對應的功能,或者功能對應的魔咒。如果魔咒不在詞典中,就輸出「what?」
sample input
[expelliarmus] the disarming charmsample output[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
light the wand#include #include#include#include#include#include#include#include#include#includeconst int maxn=1e5+10;accio
what?
what?
const int mod=1e9+7;
const int inf=1e8;
#define me(a,b) memset(a,b,sizeof(a))
#define lowbit(x) x&(-x)
#define mid l+(r-l)/2
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define pi 3.14159265358979323846
int dir[4][2]= ;
typedef long long ll;
using namespace std;
char str1[maxn][30],str2[maxn][100];
int len=0;
struct node
{ int has,i;
bool friend operator<(node a,node b)
{return a.has思路:
這個題有兩種方法,一種是用stl庫裡面的map來進行一一對應。或者就是用雜湊+二分來解決
先建立兩個結構體陣列,乙個用來儲存魔咒的名字的雜湊值,另乙個來儲存魔咒解釋的雜湊值,
然後輸入字串,先判斷是魔咒還是解釋,然後新建乙個結構體來儲存這個魔咒的雜湊值,再用二分或者lower_bound函式來進行查詢(二分的話有點麻煩,還是不會實現)找到對應的位置並且·輸出另乙個結構體陣列同樣位置的解釋
魔咒詞典 HDU1880 雜湊 二分
哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能 當哈利需要某個功能但不知道該用什麼魔咒時,...
HDU 1880 魔咒詞典(Hash 二分)
哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能 當哈利需要某個功能但不知道該用什麼魔咒時,...
1029 魔咒詞典
1029 魔咒詞典.cpp 定義控制台應用程式的入口點。題目1029 魔咒詞典 時間限制 5 秒記憶體限制 32 兆特殊判題 否提交 5097解決 1478 題目描述 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急...