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;
}

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5404017.html,如需转载请自行联系原作者

UVA 11732 - strcmp() Anyone?(Trie)相关推荐

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

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

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

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

  3. Uva 11732 strcmp()函数

    题目链接:https://vjudge.net/contest/158125#problem/A 题意: 系统中,strcmp函数是这样执行的,给定 n 个字符串,求两两比较时,strcmp函数要比较 ...

  4. uva 11732 strcmp() Anyone?

    https://vjudge.net/problem/UVA-11732 题意: 给出许多字符串,他们两两按下面的函数比较 输出比较次数 s[i]==t[i]  ,  和  s[i]=='\0'   ...

  5. strcmp() Anyone? UVA - 11732 左孩子右兄弟Trie/计数

    #include<bits/stdc++.h> using namespace std; #define ll long longconst int maxnode = 4000 * 10 ...

  6. UVa 11732 (Tire树) strcmp() Anyone?

    这道题也是卡了挺久的. 给出一个字符串比较的算法,有n个字符串两两比较一次,问一共会有多少次比较. 因为节点会很多,所以Tire树采用了左儿子右兄弟的表示法来节省空间. 假设两个不相等的字符串的最长公 ...

  7. Trie(字典树)解析及其在编程竞赛中的典型应用举例

    摘要: 本文主要讲解了Trie的基本思想和原理,实现了几种常见的Trie构造方法,着重讲解Trie在编程竞赛中的一些典型应用. 什么是Trie? 如何构建一个Trie? Trie在编程竞赛中的典型应用 ...

  8. UVA 10515 - Powers Et Al.(数论)

    UVA 10515 - Powers Et Al. 题目链接 题意:求出m^n最后一位数 思路:因为m和n都非常大,直接算肯定是不行的,非常easy想到取最后一位来算,然后又非常easy想到最后一位不 ...

  9. HDU_1075 What Are You Talking About(Trie 树)

    题意:这题很好理解,给一个字典,上边有火星文对应的英语,让后输入一句话,把它翻译成英语. 思路:定义Tire树时加一个存放字符串的数组s[],按字典上的火星文建立Trie树,在每一个火星文的末尾将对应 ...

最新文章

  1. mysql分页案例_php+mysql 进行分页案例
  2. postgreSQL的应用
  3. 统计思维:程序员数学之概率统计(第2版):第1章 探索性数据分析
  4. LeetCode:贪婪算法
  5. CSS text-indent 属性
  6. Hive2.1.1、Hadoop2.7.3 部署
  7. jQuery教程04-jQuery_this选择器
  8. php 实现application,PHP中实现ASP中的Application 功能
  9. mysql 索引超出范围_java.sql.SQLException:列索引超出范围,0 1
  10. Apache Prefork、Worker和Event三种工作模式分析
  11. 候选公示!高工智能汽车金球奖第二批入围年度产品/方案亮相
  12. CICD概念 k8s DevOps
  13. java小型计费系统设计_JAVA课程设计模拟电信计费系统
  14. 桌面快捷图标变成白色处理方案
  15. LSB顺序+随机隐写和提取(matlab)
  16. xp桌面计算机在哪个文件夹,windows桌面文件路径 windows xp 桌面文件默认存放路径...
  17. FLV文件(H264 + AAC)格式超详细分析
  18. 【ESP系列】ESP8266-12F
  19. 【Apollo 6.0学习笔记】高精地图
  20. 美国企业邮箱怎么注册,有没有可替代国外邮箱的国内邮箱?

热门文章

  1. 几行VB代码拿下注册表
  2. Quick, Draw! Kaggle挑战赛丨现在,轮到你来猜了
  3. AI创业营第三期拉开帷幕:生存训练+思想盛宴
  4. 毕啸南专栏 | 对话澜亭资本创始人刘炯:2018 AI创投领域如何“去伪存真”
  5. 结合了人工客服和AI的Fin,可能是Siri最大的竞争对手
  6. Mybaties入门介绍
  7. 小端法、大端法、网络字节转序
  8. varnish与squid的比较
  9. C中的extern-static-const关键词
  10. Linux突然断电造成系统文件损坏而无法启动