www.pudn.com > zhejiang_university_acm_onlinejudge_code.rar > zp1038.cpp
#include#include struct chrtp { int dt; struct chrtp* pt[26]; }; int ln,k,f; char st[110]; void addtotree(int m,struct chrtp* cur) { if (m pt[t]==NULL) { cur->pt[t]=new(struct chrtp); for (i=0;i<26;i++) cur->pt[t]->pt[i]=NULL; cur->pt[t]->dt=k; } else cur->pt[t]->dt+=k; addtotree(m+1,cur->pt[t]); } } char smx[110],sm[110]; int r, loc[8]={0,3,6,9,12,15,19,22}, col[8]={3,3,3,3,3,4,3,4}; void scantree(int m,int n,int d,struct chrtp* cur) { if (m) { int i,t=st[n-m]-'2'; for (i=loc[t];i pt[i]!=NULL) { sm[n-m]=i+'a'; scantree(m-1,n,cur->pt[i]->dt,cur->pt[i]); } } else if (d>r) { int i; for (i=0;i pt[i]=NULL; scanf("%d",&n); for (i=0;i