題目描述:哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。
給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能;當哈利需要某個功能但不知道該用什麼魔咒時,你的程式要替他找到相應的魔咒。如果他要的魔咒不在詞典中,就輸出「what?」
輸入:首先列出詞典中不超過100000條不同的魔咒詞條,每條格式為:
[魔咒] 對應功能
其中「魔咒」和「對應功能」分別為長度不超過20和80的字串,字串中保證不包含字元「[」和「]」,且「]」和後面的字串之間有且僅有乙個空格。詞典最後一行以「@end@」結束,這一行不屬於詞典中的詞條。
詞典之後的一行包含正整數n(<=1000),隨後是n個測試用例。每個測試用例佔一行,或者給出「[魔咒]」,或者給出「對應功能」。
輸出:每個測試用例的輸出佔一行,輸出魔咒對應的功能,或者功能對應的魔咒。如果魔咒不在詞典中,就輸出「what?」
樣例輸入:
[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
樣例輸出:
light the wandaccio
what?
what?
2023年浙江大學計算機及軟體工程研究生機試真題
//二分查詢(625ms)
#include "iostream"
#include "stdio.h"
#include "math.h"
#include "vector"
#include "queue"
#include "memory.h"
#include "algorithm"
#include "string"
using namespace std;
#define n 100010
int cnt;
struct dic
d[2][n];
int comp1(const void *a,const void *b)
int comp2(const void *a,const void *b)
void search(char*s, int dicset,int l,int r)
puts("what?");
return ;
} else if(dicset==0)
else if(strcmp(s,d[0][m].a)>0)
l=m+1;
else
r=m-1;
} puts("what?");
return; }}
int main()
a[x]='\0';
i++;
x=0;
while (c[i]!='\0')
b[x]='\0';
a1=a;
b1=b;
dic[a1]=b1;
dic[b1]=a1;
}int n;
scanf("%d",&n);
gets(a);
while(n--)
strcpy(dic[cnt],stodic);
r->index=cnt++;
}int main()
int n;
scanf("%d",&n);
getchar();
while(n--)
if(iindex]);
else
{for(i=1;iindex])-1;i++)
printf("%c",dic[r->index][i]);
cout<
hdu1880(魔咒詞典)
1.下面是二分查詢 ac include include include define max 100005 typedef struct node node node mag1 max node mag2 max int cmp1 const void a,const void b int cmp...
魔咒詞典 HDU 1880
感覺這題巨毒瘤,讀入字串方面調了好久才避免了讀入空白字元。思路就是對每條資訊的魔咒和功能的記錄在s1和s2串裡,並在ihash陣列裡通過資訊的編號 cnt 確定存放的列,將魔咒 魔咒的hash值存在第一行 或功能 功能的hash值存在第2行 的hash值存入。然後輸入乙個要查詢的字串,就先求出其ha...
HDU 1880魔咒詞典
problem description 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能 當...