标签:des style blog http color os io ar for
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2806
1 3 a ab abc 10 20 30
60 50 30
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; int w[100001]; char a[100001][11]; typedef struct Node { struct Node *next[26]; int flag; } Node,*Tree; void creat(Tree &T) { T=(Node *)malloc(sizeof(Node)); T->flag=0; for(int i=0; i<26; i++) T->next[i]=NULL; } void inseart(Tree &T,char *s,int key) { int l=strlen(s); int t; Tree p=T; for(int i=0; i<l; i++) { t=s[i]-‘a‘; if(p->next[t]==NULL) creat(p->next[t]); p=p->next[t]; p->flag+=key; } } int search(Tree T,char *s) { int t; Tree p=T; int l=strlen(s); for(int i=0; i<l; i++) { t=s[i]-‘a‘; p=p->next[t]; } return p->flag; } void D(Tree p) { for(int i=0; i<26; i++) { if(p->next[i]!=NULL) D(p->next[i]); } free(p); } int main() { int K,n,tt; scanf("%d",&K); while(K--) { Tree T; scanf("%d",&n); creat(T); for(int i=0; i<n; i++) { scanf("%s",a[i]); } for(int i=0; i<n; i++) { scanf("%d",&w[i]); } for(int i=0; i<n; i++) { inseart(T,a[i],w[i]); } for(int i=0; i<n; i++) { tt=search(T,a[i]); if(i==0) printf("%d",tt); else printf(" %d",tt); } printf("\n"); D(T); } return 0; }
标签:des style blog http color os io ar for
原文地址:http://www.cnblogs.com/zhangmingcheng/p/3942380.html