題意:給你一些單詞 和優先值 然後當你按下數字的時候首先會出現哪個單詞 就是我們平時手機的按鍵
思路:建一顆字典樹 因為按乙個數字對應多個字母 那麼就有多種情況 我們要輸出權值最大的乙個 我用了優先佇列 這裡每個字首的優先值是所有單詞優先值的和
例如abc 5 abd 6 acd 7 那麼a這個字首的優先值是18 ab的優先值是11
#include #include #include using namespace std;
const int maxnode = 100010;
const int sigma_size = 26;
const int maxn = 1010;
int ch[maxnode][sigma_size];
int val[maxnode];
int sz;
char s[maxn][110];
char id[12][6] = ;
void init()
struct node
node(int _u, int _v, int _x, char* s)
bool operator < (const node& rhs) const };
int idx(char c)
void insert(char *s, int v)
u = ch[u][c];
val[u] += v;
} //val[u] += v;
}void find(char *s)
} if(q.empty())
else
}}int main()
printf("scenario #%d:\n", cas++);
scanf("%d", &m);
while(m--)
puts("");
} return 0;
}
POJ 1451 T9 (字典樹好題)
背景 為了方便九宮格手機使用者發簡訊,希望在使用者按鍵時,根據提供的字典 給出字串和頻數 給出各個階段最有可能要打的單詞。題意 首先給出的是字典,每個單詞有乙個出現頻率。然後給出的是詢問,每個詢問有乙個數字字串,代表在手機上按了哪些鍵,以1結束。問按鍵的過程中最可能出現的單詞分別是哪些。思路 搞了很...
POJ 1451 T9 字典樹好題
題意 原來的按鍵手機都一般是九鍵,九鍵輸入英文很麻煩,例如要鍵入 hello 必須按兩次鍵4 兩次鍵3 三次鍵5 三次鍵5,最後按三次鍵6。現有一種新的輸入方案名叫 t9 只需要不重複地按鍵,軟體就會使用內建的字典來查詢最可能的與輸入匹配的單詞。例如,輸入 hello 只要依次按下4,3,5,5,6...
poj3376 字典樹 擴充套件kmp
kuangbin專題十六字最後一發 題意 n個字串,每個字串長度為l,將字串兩兩自由組合一共有 n n種方案 判斷其中組合之後為回文串的字元有多少個.做法 首先由兩個字串a,b.要使它們能組成回文串有三種情況 1.alen blen 時 a是b的反串字首,且b的剩餘部分可以認為是字尾是回文串 2.a...