UVa 11732-strcmp() Anyone?
来源:互联网 发布:产品网站源码 编辑:程序博客网 时间:2024/05/22 06:48
由于数据规模的原因,需要用多叉树来构建Trie,即一个结点的子树通过一个子节点串起来,这样节省很多空间。本代码的Node.count为插入时搜索路径经过该结点的次数,表明多少个字符串在Trie相应的深度位置和当前字符串里的相应位置的字符相等,如果相等就要加上其次数乘上2,如果不相等直接加上其次数。
#include <cstdio>#include <memory.h>#include <cstring>#define maxnode 4000005#define LL long longusing namespace std;struct Node{char ch;Node* brother;Node* child;int count;};Node map[maxnode];class Trie{public:Node* root;LL ans;int sz;void Initial(){sz=1;ans=0;root=NewNode(0);}Node* NewNode(char c){map[sz].ch=c;map[sz].brother=map[sz].child=NULL;map[sz].count=0;return &map[sz++];}void Trie_Insert(char str[],int n){Node* node=root->child,*last=root;bool flag;for(int i=0;i<=n;++i){flag=0;for(Node* next=node;next!=NULL;next=next->brother){if(next->ch==str[i]){flag=1;node=next;ans+=next->count*2;}elseans+=next->count;}if(!flag){Node* temp=NewNode(str[i]);temp->brother=last->child;last->child=temp;node=temp;}node->count++;last=node;node=node->child;}}};int main(){int n,len=1;char str[1010];Trie trie;while(~scanf("%d",&n)){if(n==0)break;getchar();trie.Initial();while(n--){gets(str);trie.Trie_Insert(str,strlen(str));}printf("Case %d: %lld\n",len++,trie.ans);}return 0;}
阅读全文
0 0
- Uva-11732-strcmp() Anyone?
- Uva 11732 strcmp() Anyone?
- uva 11732 - strcmp() Anyone?
- UVa:11732 strcmp() Anyone?
- UVA - 11732 strcmp() Anyone?
- UVa 11732 - strcmp() Anyone?
- UVa 11732 strcmp() Anyone?
- UVa 11732 strcmp() Anyone?
- 【UVA】11732 - strcmp() Anyone?
- UVA-11732 “strcmp()” Anyone?
- UVa 11732 - strcmp() Anyone?
- UVA 11732 "strcmp()" Anyone?
- UVA 11732 "strcmp()" Anyone?
- UVa 11732-strcmp() Anyone?
- uva 11732 "strcmp()" Anyone?
- UVA 11732 strcmp() Anyone (Trie)
- UVA 11732 - strcmp() Anyone?(Trie)
- UVA 11732 strcmp() Anyone? (Trie)
- Tomcat的server.xml中server标签参数的含义
- 性能场景设计深度分析
- 如何使用Openlayer发布地图
- cocos2d-x使用jni java调用c++方法(java 调 c++)
- 用Log4j在控制台输出Mybatis中执行的SQL
- UVa 11732-strcmp() Anyone?
- Spring笔记(一)——xml方式实现IoC和DI
- C 语言基础 注释
- 【脚本语言系列】关于Python基础知识协程,你需要知道的事
- Python中如何进行数据分组
- MobX 在 React Native开发中的应用
- iOS10富文本推送--UNNotificationExtension--基础篇
- 洛谷P1427 小鱼的数字游戏
- Spark-Streaming之transform操作,实时黑名单过滤案例