UVA - 11488 - Hyper Prefix Sets(Trie 应用)
来源:互联网 发布:天地图数据分级标准 编辑:程序博客网 时间:2024/05/23 11:06
这里涉及左孩子右兄弟的遍历方法,dfs在dfsnextsibling是floor 并不加一
#include<cstdio>#include <vector>#include<cstring>#include<iostream>#include <set>#include <algorithm>using namespace std;#define INF 1000000;typedef struct node{char c;int tot;node *firstchild,*nextsibling;node():c('\0'),tot(0),firstchild(NULL),nextsibling(NULL){}}node,*pointer;struct Trie{pointer root;Trie(){root=new node();}void insert(char* s,int n ){pointer u=root;for(int i=0;i<n;i++){ pointer p=u->firstchild; if(p!=NULL) while(p->nextsibling!=NULL&&p->c!=s[i]) p=p->nextsibling; if(p==NULL||p->nextsibling==NULL&&p->c!=s[i]){ pointer& v=(p==NULL ? u->firstchild:p->nextsibling); v=new node(); v->c=s[i]; v->tot++; u=v; } else { u=p; u->tot++;}}}bool find(char* s,int n){pointer u=root;for(int i=0;i<n;i++){ pointer p=u->firstchild; if(p==NULL) return false; while(p->nextsibling!=NULL&&p->c!=s[i]) p=p->nextsibling; if(p->nextsibling==NULL&&p->c!=s[i]) return false; u=p;}return true;}int dfs(pointer& root,int max_,int floor){if(root->firstchild!=NULL) max_=max(max_,dfs(root->firstchild,max_,floor+1));if(root->nextsibling!=NULL) max_=max(max_,dfs(root->nextsibling,max_,floor));return max(max_,floor*root->tot);}int DFS(){return dfs(root,0,0);}};char str[10000];int n;int main(){ int T; scanf("%d",&T); while(T--){ Trie trie; scanf("%d",&n); gets(str); for(int i=0;i<n;i++){ gets(str); trie.insert(str,strlen(str)); } printf("%d\n",trie.DFS()); }}
0 0
- UVA - 11488 - Hyper Prefix Sets(Trie 应用)
- UVA 11488 Hyper Prefix Sets(trie的应用)
- uva 11488 - Hyper Prefix Sets(Trie)
- UVA 11488 Hyper Prefix Sets(Trie)
- UVA 11488,Hyper Prefix Sets,Trie树
- UVA 11488 - Hyper Prefix Sets(Trie)
- Hyper Prefix Sets - UVa 11488 Trie树
- UVa 11488 - Hyper Prefix Sets (Trie)
- UVA 11488 Hyper Prefix Sets (Trie)
- UVA 11488 Hyper Prefix Sets Trie树求最值
- UVA 11488(Hyper Prefix Sets-Trie统计)
- UVA 11488-Hyper Prefix Sets(trie树+DFS)
- UVa 11148 Hyper Prefix Sets (Trie)
- Uva-11488-Hyper Prefix Sets
- UVa:11488 Hyper Prefix Sets
- UVA - 11488 Hyper Prefix Sets
- uva 11488 Hyper Prefix Sets
- UVa 11488 - Hyper Prefix Sets
- HTML超文本标记语言的介绍
- ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决办法
- 【资料整理】BGL中的BFS算法使用
- javaweb-图片的下载实现及分别处理浏览器乱码问题
- 面向对象的软件工程——面向对象的分析
- UVA - 11488 - Hyper Prefix Sets(Trie 应用)
- Yii - Query Builder and Query(查询生成器)
- 输入/读取测试数据
- Otc, 25, 2014 Plan
- 【二】注入框架RoboGuice使用:(Your First View Injection)
- 唯一标示符
- linux下安装输入法
- 仿腾讯手机管家火箭发射
- 《JavaScript权威指南(第六版)》读书笔记 (二) 类型、值和变量