当前位置: 首页 > news >正文

poj 1251 统计难题(字典树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251

AC代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<queue>
 6 #include<string>
 7 #include<cmath>
 8 using namespace std;
 9 char ss[1010][1010];
10 #define MAX 27
11 struct  trie
12 {
13     trie *next[MAX];
14     int  v;
15     trie()
16     {
17         int i;
18         v=0;
19         for(i=0; i<26; i++) next[i]=NULL;
20     }
21 };
22 trie *p,*q;
23 void creattrie(char *str,trie *root)
24 {
25     int len = strlen(str);
26     p = root;
27     for(int i=0;i<len; i++)
28     {
29         int id = str[i] - 'a';
30         if(p->next[id] == NULL)
31         {
32             q=new trie;
33             q->v = 1;
34             p->next[id] = q;
35             p=q;
36         }
37         else
38         {
39             p=p->next[id];
40             p->v+=1;
41         }
42     }
43 }
44 int findtrie(char *str,trie *root)
45 {
46     int i;
47     int len = strlen(str);
48     p = root;
49     for(i=0;i<len;i++)
50     {
51         int id = str[i] - 'a';
52         p=p->next[id];
53         if(p->v == 1)
54         {
55             return i+1;
56         }
57     }
58 }
59 int main()
60 {
61 int T,n,ans;
62 scanf("%d",&T);
63 while(T--)
64 {
65     ans = 0;
66     trie *root = new trie;
67     scanf("%d",&n);
68     //getchar();
69     for(int i=0;i<n;i++)
70     {
71         scanf("%s", ss[i]);//用gets接收错了一天了,晚上才发现
72         creattrie(ss[i],root);
73     }
74     for(int i=0;i<n;i++)
75     {
76         int kk = findtrie(ss[i],root);
77         ans = ans+kk;
78     }
79     printf("%d\n",ans);
80 }
81   return 0;
82 }

 

转载于:https://www.cnblogs.com/lovychen/p/4475891.html

相关文章:

  • uploadify.js参数说明(转)
  • MongoDB高可用架构:Replica Sets+Sharding
  • 实验二 Java面向对象程序设计
  • Linq之求和,平均值,最大值,最小值
  • Android 中文API (70) —— BluetoothDevice[蓝牙]
  • 动态数组排序实例
  • Nginx 反向代理、负载均衡与动静分离
  • [裴礼文数学分析中的典型问题与方法习题参考解答]4.4.9
  • 贪心 URAL 1303 Minimal Coverage
  • 使用JS或jQuery模拟鼠标点击a标签事件代码
  • 创建activiti工作流所需23张表
  • Spring Userservice-用户登录,登录数据库密码存储以及防止暴力破解
  • 复习之webview(观看张荣超视频)
  • Android6 Socket通信
  • 给列表项目添加动画
  • [数据结构]链表的实现在PHP中
  • ERLANG 网工修炼笔记 ---- UDP
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP面试之三:MySQL数据库
  • Python利用正则抓取网页内容保存到本地
  • Spring框架之我见(三)——IOC、AOP
  • Swift 中的尾递归和蹦床
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 阿里云应用高可用服务公测发布
  • 动态魔术使用DBMS_SQL
  • 排序(1):冒泡排序
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 探索 JS 中的模块化
  • 正则表达式小结
  • nb
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​queue --- 一个同步的队列类​
  • ​马来语翻译中文去哪比较好?
  • #数学建模# 线性规划问题的Matlab求解
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (09)Hive——CTE 公共表达式
  • (16)Reactor的测试——响应式Spring的道法术器
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (5)STL算法之复制
  • (6)设计一个TimeMap
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (NSDate) 时间 (time )比较
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二)windows配置JDK环境
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .gitignore
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net连接oracle数据库
  • .net中调用windows performance记录性能信息
  • [boost]使用boost::function和boost::bind产生的down机一例