HDU 3460 Trie树
2016-06-13 16:47
387 查看
点击打开链接
题意:给了我n个字符串,有三个操作,写一个字符,删除一个字符,还有一个打印字符,问最少多少次操作就能完成
思路:对于这个所有字符串形成的字典树来说,有的字符是需要写一次并且要删除一次的,这样的字符称它为节点,设几点个数为alen,然后所有节点的操作就是alen*2,然后每个串完成后要打印,那么加上n,最后减去一个所有串的长度最长的串,那是因为在写最后一个串的时候写完就可以,不用再删除了,所以补回来
题意:给了我n个字符串,有三个操作,写一个字符,删除一个字符,还有一个打印字符,问最少多少次操作就能完成
思路:对于这个所有字符串形成的字典树来说,有的字符是需要写一次并且要删除一次的,这样的字符称它为节点,设几点个数为alen,然后所有节点的操作就是alen*2,然后每个串完成后要打印,那么加上n,最后减去一个所有串的长度最长的串,那是因为在写最后一个串的时候写完就可以,不用再删除了,所以补回来
#include <string> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; typedef unsigned long long ull; const int inf=0x3f3f3f3f; const ll INF=0x3f3f3f3f3f3f3f3fll; const int maxn=10010; char str[maxn][60]; int alen; struct Trie{ Trie *next[26]; int v; }; Trie *root; void creatTrie(char *str){ int len=strlen(str); Trie *p=root,*q; for(int i=0;i<len;i++){ int id=str[i]-'a'; if(p->next[id]==NULL){ q=(Trie *)malloc(sizeof(Trie)); q->v=0;alen++; for(int j=0;j<26;j++) q->next[j]=NULL; p->next[id]=q; } p=p->next[id]; } } int dealtrie(Trie *T){ if(T==NULL) return 0; for(int i=0;i<26;i++) if(T->next[i]!=NULL) dealtrie(T->next[i]); free(T); return 0; } int main(){ int n; while(scanf("%d",&n)!=-1){ root=(Trie *)malloc(sizeof(Trie)); for(int i=0;i<26;i++) root->next[i]=NULL; int max1=-1; alen=0; for(int i=0;i<n;i++){ scanf("%s",str[i]); int len1=strlen(str[i]); max1=max(max1,len1); creatTrie(str[i]); } printf("%d\n",alen*2-max1+n); dealtrie(root); } return 0; }
相关文章推荐
- building system busy, pls wait !!
- Ubuntu iptables 设置
- jsp中<a href=""></a>标签传递参数乱码问题解决
- IOS Block传值
- FTP 上传、下载(转自:http://blog.csdn.net/zlb824/article/details/7742959)
- mysql Packet for query is too large 异常解决
- Kodi ——4 Windows窗口
- Find the Celebrity
- Myeclipse建立第一个java web程序
- Swagger+Spring mvc生成Restful接口文档
- iOS8系统H264视频硬件编解码说明
- 仿qq列表侧滑删除
- UDP的主要特点、首部格式及功能
- 在Spring MVC Controller的同一个方法中,根据App还是WEB返回JSON或者HTML视图。
- openfiledialog的使用
- Google式用户体验的十大内在原则
- Android开源项目第二篇——工具库篇
- dl dt dd
- 详解使用sax解析xml文件的DefaultHandler处理类(转载)
- Openfire 系统架构