HDU -- 1298 T9 (Trie 树+dfs)
来源:互联网 发布:mac os沙盒 编辑:程序博客网 时间:2024/05/16 07:45
题目大意:
模拟手机键盘输入,给出一组字符串单词以及单词的频率,接着给出一串数字,相当于模拟咱们在手机键盘输入,对于每个数字,输出频率最大的字符串;
代码实现:
#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>using namespace std;char word[110],res[110],tmp[110];char phone[10][4]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}};int num[10]={3,3,3,3,3,4,3,4},flag,max_p;struct tree{ int cnt; tree *next[26];}*root;tree *Create(){ tree *p; p=(tree *)malloc(sizeof(tree)); p->cnt=0; for(int i=0;i<26;++i) p->next[i]=NULL; return p;}void Insert(char *word,int k){ tree *p=root; int i=0,x,l=strlen(word); while(i<l){ x=word[i++]-'a'; if((p->next[x])==NULL) p->next[x]=Create(); p=p->next[x]; p->cnt+=k; }}void Search(int l,int len,tree *p){ if(l==len){ flag=1; if(p->cnt>max_p){ max_p=p->cnt; for(int i=0;i<len;++i) res[i]=tmp[i]; res[len]='\0'; } return; } int pos=word[l]-'2',x; char t; for(int i=0;i<num[pos];++i){ t=phone[pos][i]; x=t-'a'; if((p->next[x])==NULL) continue; tmp[l]=t; Search(l+1,len,p->next[x]); }}int main(){ int t,c=0,n,p,m,mark; scanf("%d",&t); while(t--){ printf("Scenario #%d:\n",++c); scanf("%d",&n); root=Create(); for(int i=0;i<n;++i){ scanf("%s %d",word,&p); Insert(word,p); } scanf("%d",&m); for(int i=0;i<m;++i){ mark=0; scanf("%s",word); int l=strlen(word); for(int j=0;j<l-1;++j){ flag=0,max_p=0; if(!mark) Search(0,j+1,root); if(flag) printf("%s\n",res); else printf("MANUALLY\n"),mark=1; } printf("\n"); } printf("\n"); }}
0 0
- HDU -- 1298 T9 (Trie 树+dfs)
- HDU 1298 - T9(trie树)
- hdu 1298 T9 trie
- HUD-1298 T9(字典树trie + dfs)
- HDU 1298 T9 字典树+dfs
- 【字典树+DFS】hdu 1298 T9
- 字典树+DFS T9 HDU 1298
- hdu 1298 T9 字典树 dfs
- hdu 1298 T9(字典树+DFS)
- HDU 1298 T9 字典树+DFS
- [字典树 + dfs] HDU 1298 - T9
- hdu 1298 T9 字典树+DFS
- HDU 1298 T9 // 字典树,枚举,dfs
- HDU 1298:T9【字典树+dfs】
- hdu-1298 T9(字典树+DFS)
- HDU 1298 T9 字典树+dfs
- HDU 1298 T9(手机输入法相关,字典树+dfs)
- hdu 1298 字典树 + DFS (模拟T9文本输入)
- WOJ Problem 1420 - 可见点
- 我的心得
- 梯度下降方法
- 优先队列及最小堆最大堆
- Hadoop集群(第10期)_MySQL关系数据库
- HDU -- 1298 T9 (Trie 树+dfs)
- 毕业课题之---HOG+SVM的一个研究过程
- 中国国产汽车的悲哀
- Convert Sorted List to Binary Search Tree
- Python Show-Me-the-Code 第 0023 题 Web留言簿应用
- Branch分支结构
- HDU--2851(最短路)
- 初识JAVA4
- TangIDE游戏开发之70行代码实现打地鼠