UVA 11732 - strcmp() Anyone?

题目链接

题意:给定一些字符串,要求两两比較,须要比較的总次数(注意。假设一个字符同样。实际上要还要和'\0'比一次,相当比2次)

思路:建Trie树,每次建树过程中。后继后继结点就是同样结点须要比較两次ans + val * 2。否则就是不同结点ans + val,建完树就计算完了

代码:

#include <cstdio>
#include <cstring> const int N = 1005;
const int MAXN = 4000005; int n;
char str[N];
long long ans; struct Node {
char c;
int val;
} node[MAXN]; int first[MAXN], next[MAXN], sz; void init() {
ans = 0;
sz = 1;
first[0] = 0; next[0] = 0; node[0].val = 0;
} void insert(char *str) {
int u = 0, len = strlen(str);
for (int i = 0; i <= len; i++) {
bool flag = true;
int v, tmp;
for (v = first[u]; v; v = next[v]) {
if (node[v].c == str[i]) {
tmp = v;
flag = false;
ans += node[v].val * 2;
}
else ans += node[v].val;
}
if (flag) {
v = sz++;
node[v].c = str[i];
node[v].val = 0;
first[v] = 0;
next[v] = first[u];
first[u] = v;
}
else v = tmp;
u = v;
node[u].val++;
}
} int main() {
int cas = 0;
while (~scanf("%d", &n) && n) {
init();
while (n--) {
scanf("%s", str);
insert(str);
}
printf("Case %d: %lld\n", ++cas, ans);
}
return 0;
}

UVA 11732 - strcmp() Anyone?(Trie)的更多相关文章

  1. 左儿子右兄弟Trie UVA 11732 strcmp() Anyone?

    题目地址: option=com_onlinejudge&Itemid=8&category=117&page=show_problem&problem=2832&qu ...

  2. UVa 11732 "strcmp()" Anyone? (左儿子右兄弟前缀树Trie)

    题意:给定strcmp函数,输入n个字符串,让你用给定的strcmp函数判断字符比较了多少次. 析:题意不理解的可以阅读原题https://uva.onlinejudge.org/index.php? ...

  3. UVA 11732 strcmp() Anyone?(Trie的性质)

    strcmp() Anyone? strcmp() is a library function in C/C++ which compares two strings. It takes two st ...

  4. UVA - 11732 "strcmp()" Anyone?左兄弟右儿子trie

    input n 2<=n<=4000 s1 s2 ... sn 1<=len(si)<=1000 output 输出用strcmp()两两比较si,sj(i!=j)要比较的次数 ...

  5. UVA - 11732 "strcmp()" Anyone? (trie)

    https://vjudge.net/problem/UVA-11732 题意 给定n个字符串,问用strcmp函数比较这些字符串共用多少次比较. strcmp函数的实现 int strcmp(cha ...

  6. Trie UVA 11732 "strcmp()" Anyone?

    题目传送门 题意:询问所有字符串的比较次数和(注意for循环内的比较也算) 分析:将所有字符串插入到字典树上,然后结点信息记录有几个字符串,那么每走到一个结点就能知道比较到此时需要的次数.学习到链表存 ...

  7. uva 11732 - strcmp() Anyone? 不错的Trie题

    题解:http://blog.csdn.net/u013480600/article/details/23122503 我的代码一直TLE,,,看了人家的之后,认为1.链式前向星比較好,2.*dept ...

  8. UVA 11732 strcmp() Anyone (Trie+链表)

    先两两比较,比较次数是两者相同的最长前缀长度*2+1,比较特殊的情况是两者完全相同时候比较次数是单词长度*2+2, 两个单词'末尾\0'和'\0'比较一次,s尾部'\0'和循环内'\0'比较一次. 因 ...

  9. UVA 11732 - strcmp() Anyone? 字典树

    传送门:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

随机推荐

  1. TED_Topic9:How we're priming some kids for college — and others for prison

    Alice Goffman In the United States, two institutions guide teenagers on the journey to adulthood: co ...

  2. lucene入门创建索引——(二)

    1.程序宏观结构图

  3. mysql_存储过程_后一行减去前一行

    DELIMITER $$ /*统计单个用户登录次数的存过 @times_count int 返回值 @i 记录行号的变量 初始值为0 @temp 记录时间差的变量 @total 记录登录次数的变量 初 ...

  4. springcloud中Feign配置详解

    Spring Cloud中Feign配置详解 到目前为止,小伙伴们对Feign的使用已经掌握的差不多了,我们在前文也提到Feign是对Ribbon和Hystrix的整合,那么在Feign中,我们要如何 ...

  5. net MongoDB安装

    Mongo服务器端下载链接:https://www.mongodb.com/download-center?jmp=nav 客户端查看工具Mongovue工具下载链接:http://pan.baidu ...

  6. jQuery-属性操着

    jquery属性操作分为属性操作,CSS类操作,HTML代码/文本/值操作 一:属性 使用 说明 例子 attr(name|pro|key,val|fn) 设置或返回被选元素的属性值, # 专门用于做 ...

  7. protected

    protected  继承访问权限 在同一包中可以访问protected成员. 继承状态可以访问protected成员 在不同包中非继承不可以访问protected成员.

  8. Windows下安装Python requests模块

    在使用自己写的或者别人的python小工具时可能会出现类似ImportError: No module named Requests的问题: D:\tool\python\fuzz>Fuzz.p ...

  9. Error:The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location:

    在Android studio 或者intellij idea中新创建一个项目或者打开一个存在的项目时,有时候会出现Error:The supplied javaHome seems to be in ...

  10. Sqoop的安装及简单使用

    SQOOP是用于对数据进行导入导出的. (1)把MySQL.Oracle等数据库中的数据导入到HDFS.Hive.HBase中   (2)把HDFS.Hive.HBase中的数据导出到MySQL.Or ...