UVA - 12526 Cellphone Typing
2013-10-04 18:34
309 查看
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; typedef long long ll; const int N = 2000000; int ch [28]; int sz,val[N*26],son[N*26]; void clear(int u){ memset(ch[u],0,sizeof(ch[u])); } void init(){ sz=1; memset(ch[0],0,sizeof(ch[0])); memset(son,0,sizeof(son)); } void insert(char* _str){ int u=0; for(int i=0;_str[i];i++){ int id=_str[i]-'a'; if(ch[u][id]==0){ clear(sz); son[u]++; val[sz]=0; ch[u][id]=sz++; } u=ch[u][id]; } val[u]=1; } int sol(char* _str){ int u=0,_ans=1; for(int i=0;_str[i];i++){ int id=_str[i]-'a'; u=ch[u][id]; if((son[u]>1 || val[u]==1) && _str[i+1]) _ans++; } return _ans; } char str [100]; int main(){ int t; while(~scanf("%d",&t)){ int ans=0; init(); for(int i=0;i<t;i++){ scanf("%s",str[i]); insert(str[i]); } for(int i=0;i<t;i++) ans+=sol(str[i]); printf("%.2lf\n",1.0*ans/t); } return 0; } /* 4 hello hell heaven goodbye */
相关文章推荐
- uva 12526 - Cellphone Typing
- UVA 12526 Cellphone Typing (字典树)
- UVA11530 SMS Typing【模拟+map+查表】
- UVa 11530 - SMS Typing
- Cellphone Typing - UVaLive 6133 Trie树
- UVA 12526 Cellphone Typing (字典树)
- UVALive 6133 Cellphone Typing(字典树)
- uva 10341 - Solve It
- 计算几何专项:UVa 12307
- UVA - 11029 Leading and Trailing
- uva-10420 - List of Conquests
- UVA 1406 - A Sequence of Numbers(树状数组)
- uva 10815 Andy's First Dictionary
- [UVA10181]十五数码解题报告
- uva 540
- UVA11806-Cheerleaders(容斥原理+二进制)
- UVALive 3675 Sorted bit sequence(数位dp+二分)
- UVa 1416 or LA 4080 Warfare And Logistics
- uva 489 Hangman Judge
- uva 11054 - Wine trading in Gergovia