HDU-2072-单词数(字典树)
链接:
https://vjudge.net/problem/HDU-2072
题意:
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
思路:
字典树, 插入的时候判断是否为重复插入即可.
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
//#include <memory.h>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
#include <math.h>
#include <stack>
#include <string>
#include <assert.h>
#include <iomanip>
#include <iostream>
#include <sstream>
#define MINF 0x3f3f3f3f
using namespace std;
typedef long long LL;
const int INF = 1e9;
const int MAXN = 1e6+10;
int cnt, n;
string word;
struct Node
{
    bool Ends;
    int Next[30];
    void Init()
    {
        Ends = false;
        memset(Next, 0, sizeof(Next));
    }
}Trie[MAXN];
bool Insert(string val)
{
    int root = 0;
    int len = val.size();
    for (int i = 0;i < len;i++)
    {
        if (Trie[root].Next[val[i]-'a'] == 0)
        {
            Trie[root].Next[val[i]-'a'] = ++cnt;
            Trie[cnt].Init();
        }
        root = Trie[root].Next[val[i]-'a'];
    }
    if (Trie[root].Ends)
        return false;
    Trie[root].Ends = true;
    return true;
}
int main()
{
    while (getline(cin, word))
    {
        if (word[0] == '#')
            break;
        cnt = 0;
        int ans = 0;
        Trie[0].Init();
        stringstream ss(word);
        while (ss >> word)
        {
            if (Insert(word))
                ans++;
        }
        printf("%d\n", ans);
        for (int i = 0;i <= cnt;i++)
            Trie[i].Init();
    }
    return 0;
}
												
											HDU-2072-单词数(字典树)的更多相关文章
- HDU 2072 - 单词数 - [(有点小坑的)字典树模板题]
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 Problem Descriptionlily的好朋友xiaoou333最近很空,他想了一件没有 ...
 - hdu2072 单词数 字典树
		
字典树裸题 #include<stdio.h> #include<string.h> ][]; ]; int cnt; int ans; void Insert(char *w ...
 - hdu 2072 单词数(字符串)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 题意 每行输入由小写字母和空格组成,统计每行中不同的单词数. 题解 题解一 比较简洁的解法,读入 ...
 - HDU 2072  单词数  详细解答
		
题目 单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
 - hdu 1671 Phone List 字典树
		
// hdu 1671 Phone List 字典树 // // 题目大意: // // 有一些电话号码的字符串长度最多是10,问是否存在字符串是其它字符串的前缀 // // // 解题思路: // ...
 - HDU 1298 T9(字典树+dfs)
		
http://acm.hdu.edu.cn/showproblem.php?pid=1298 题意:模拟手机9键,给出每个单词的使用频率.现在给出按键的顺序,问每次按键后首字是什么(也就是要概率最大的 ...
 - HDU 1298 T9【字典树增加||查询】
		
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1298 T9 Time Limit: 2000/1000 MS (Java/Others) Memo ...
 - hdu 1251 统计难题  (字典树入门题)
		
/******************************************************* 题目: 统计难题 (hdu 1251) 链接: http://acm.hdu.edu. ...
 - HDU 5536 Chip Factory 字典树
		
Chip Factory Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
 - HDOJ/HDU 1251 统计难题(字典树啥的~Map水过)
		
Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...
 
随机推荐
- spring-boot 环境搭建(一)
			
环境 jdk 8 tomcat 8.5 sts 4.4.2 maven 3.6.1 新建 maven 项目 首先创建一个普通的 maven 项目. pom.xml <project xmlns= ...
 - Linux系列(3):入门之正确的关机方法
			
前言:在Windows(非NT主机系统)系统中,由于是单人假多任务的情况,所以即使你计算机关机,对于别人也没有丝毫影响!不过,在Linux下面,由于每个程序(或者服务)都是在在背景下执行,因此,在看不 ...
 - PAT A1031 Hello World for U (20)
			
思路: 读取数组 int i = 0; while(cin >> word) { c[i] = word; i++; } 计算边长 int n1 = (length + 2) / 3; i ...
 - mysql基本用户
			
创建数据库 CREATE DATABASE database_name; 删除数据库 DROP DATABASE table_name; 创建表 CREATE TABLE `tab_charpter2 ...
 - 从入门到自闭之Python--Redis
			
什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库.Redis全称为:Remote Dictionary Server ...
 - [经验分享] Docker网络解决方案-Weave部署记录
			
前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...
 - 项目实践 hrm项目的设计过程
			
人事管理系统的设计过程 一.数据库表和持久化类 1.1 进行需求分析,根据功能模块设计数据库表 1.2 设计持久化实体 面向对象分析,即根据系统需求提取出应用中的对象,将这些对象抽象成类,再抽 ...
 - 《深入实践C++模板编程》之一——Hello模板
			
1.通过一个简单的例子来理解模板的用途: 模板为不同类型的数据生成操作相同或相似的函数. 弱语言如Python,可以使用一种函数来应对各种类型,但是C++就不得不为不同的类型编写相似的函数.模板的作用 ...
 - nginx之健康检查
			
正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...
 - django 使用mysql数据库
			
一 修改settings里面的配置文件 import pymysql # 一定要添加这两行!通过pip install pymysql! 或者pycharm 里面安装 pymysql.install_ ...