多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > hdu 1298 T9(字典樹+DFS)

hdu 1298 T9(字典樹+DFS)

來源:程序員人生   發(fā)布時間:2014-11-04 08:53:30 閱讀次數(shù):2580次

題目連接:hdu 1298 T9

題目大意:摹擬手機打字的料想功能,根據(jù)幾率,每按1個按鍵,輸出可能性最高的串。先給定N個單詞,和頻率,

然后是Q次詢問,每次詢問給定1個按按鍵的順序,以1為終止。

解題思路:對單詞表建立字典樹,每一個節(jié)點有1個經(jīng)過的頻率,這個頻率是根據(jù)所有經(jīng)過該節(jié)點的單詞頻率總和。然后

DFS搜索1遍,將答案保存在ans中。

#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 100005; const int maxm = 105; const int sigma_size = 26; const char dir[15][10] = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; struct Tire { int sz, g[maxn][sigma_size], val[maxn]; void init(); int idx(char ch); void insert(char *s, int x); }T; int N, Q, c[maxm]; char ans[maxm][maxm], w[maxm], r[maxm]; void dfs (int d, int u) { if (d) { if (T.val[u] > c[d]) { c[d] = T.val[u]; strncpy(ans[d], r, d); } } if (w[d] == 0 || w[d] == '1') return; int x = w[d] - '0'; for (int i = 0; dir[x][i]; i++) { int v = dir[x][i] - 'a'; if (T.g[u][v] == 0) continue; r[d] = dir[x][i]; dfs(d + 1, T.g[u][v]); } } int main () { int cas; scanf("%d", &cas); for (int kcas = 1; kcas <= cas; kcas++) { T.init(); scanf("%d", &N); int x; for (int i = 0; i < N; i++) { scanf("%s%d", w, &x); T.insert(w, x); } printf("Scenario #%d: ", kcas); scanf("%d", &Q); for (int i = 0; i < Q; i++) { scanf("%s", w); memset(c, 0, sizeof(c)); dfs(0, 0); for (int x = 1; w[x-1] != '1'; x++) { // printf("<%c> %d:", w[x], c[x]); if (c[x] == 0) printf("MANUALLY "); else { for (int j = 0; j < x; j++) printf("%c", ans[x][j]); printf(" "); } } printf(" "); } printf(" "); } return 0; } void Tire::init() { sz = 1; val[0] = 0; memset(g[0], 0, sizeof(g[0])); } int Tire::idx(char ch) { return ch - 'a'; } void Tire::insert(char* s, int x) { int u = 0, n = strlen(s); for (int i = 0; i < n; i++) { int v = idx(s[i]); if (g[u][v] == 0) { g[u][v] = sz; memset(g[sz], 0, sizeof(g[sz])); val[sz++] = 0; } u = g[u][v]; val[u] += x; } }
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 自拍偷拍亚洲 | 久久久一区二区三区不卡 | 欧美性xxx久久 | 欧美特级淫片 | 免费看黄网址 | 国产高清精品91在线 | 欧美亚洲综合在线 | 在线观看一区二区三区视频 | 成人黄页网站 | 精品毛片 | 欧美精品国产一区二区三区 | 国产毛片片精品天天看视频 | 性生生活三级视频在线观看 | 最近中文字幕免费高清版7 最近中文字幕免费国语 | 在线观看中文字幕国产 | jizz免费一区二区三区 | 成人精品一区二区三区校园激情 | 欧美成人鲁丝片在线观看 | 亚洲欧美卡通成人制服动漫 | 欧美日韩国产一区二区三区欧 | 美女被h| 中文字幕第一页在线播放 | 亚洲黄色在线 | 久久91精品国产91久久 | 在线高清一级欧美精品 | 国产h视频在线观看网站免费 | 性国产| 国产午夜精品理论片久久影视 | 日本一区三区 | 97成人在线观看 | 久久麻豆亚洲精品 | аbt天堂资源在线官网 | 中文在线日本免费永久18近 | 亚洲精品嫩草研究院久久 | 一二三四在线观看视频 | 最近最新中文字幕大全2019免费视频 | 亚洲免费黄网 | 性猛交xxxx乱大交孕妇 | 91精品一区二区综合在线 | 成人无高清96免费 | 亚欧美 |