UVA 11732 strcmp() Anyone?(trie)
来源:互联网 发布:mac 安全设置 编辑:程序博客网 时间:2024/05/21 10:03
题目大意:给你那个 strcmp 函数的内部,现在给你n个字符串,要两两比较,问你strcmp里判断总共用了几次?
思路:trie,又是Submission error,算了,先存下吧。。
思路:trie,又是Submission error,算了,先存下吧。。
代码如下(不知道对不对。。 = =):
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long lld;const int MAXN = 4001;const int MAX_NODE = MAXN*1001;const int SIGMA_SIZE = 27;int ch[MAX_NODE][SIGMA_SIZE];int val[MAX_NODE];struct Trie{ int sz; Trie() { sz = 1; val[0] = 0; memset(ch[0],0,sizeof(ch[0])); } int idx(char c) { if(c == '\0') return 0; else return c - 'a' + 1; } void insert(char *s) { int u = 0; int len = strlen(s); for(int i = 0;i<=len;i++) { int c = idx(s[i]); if(!ch[u][c]) { memset(ch[sz],0,sizeof(ch[sz])); val[sz] = 0; ch[u][c] = sz++; } val[u]++; u = ch[u][c]; } } int count(char *s) { int u = 0; int len = strlen(s); int cnt = 0; for(int i = 0;i<=len;i++) { cnt += val[u]; int c = idx(s[i]); if(!ch[u][c]) return cnt; cnt += val[u]; u = ch[u][c]; } return cnt; }};char str[MAXN];int main(){ int cas = 0; int n; while(~scanf("%d",&n)&&n) { Trie tr; lld ans = 0; for(int i = 1;i<=n;i++) { scanf("%s",str); if(i > 1) ans += tr.count(str); //printf("ans = %d\n",ans); tr.insert(str); } printf("Case %d: %lld\n",++cas,ans); } return 0;}
- UVA 11732 strcmp() Anyone?(trie)
- UVA 11732 "strcmp()" Anyone? (Trie)
- UVA 11732 strcmp() Anyone (Trie)
- UVA 11732 - strcmp() Anyone?(Trie)
- UVA 11732 strcmp() Anyone? (Trie)
- UVA 11732 strcmp() Anyone?(左儿子右兄弟Trie)
- UVA 11732 "strcmp()" Anyone? 前缀树(Trie)+简单搜索
- UVA 11732 strcmp() Anyone?(字典树Trie)
- UVa 11732 - strcmp() Anyone? (Trie + 邻接表)
- 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?
- 宏定义define---求解答
- UVa 515 King (差分约束系统)
- hibernate之预先加载
- Cassandra 数据模型
- 日历问题
- UVA 11732 strcmp() Anyone?(trie)
- hibernate之批量加载
- 做简历的一些加分点
- 说出ArrayList,Vector, LinkedList的存储性能和特性?
- 学习C++:实践者的方法
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- uboot中mkconfig的解析
- 描述一下JVM加载class文件的原理机制?
- 我的 MySql 命令语句总结