P2264 情书 Trie匹配
\(\color{#0066ff}{题目描述}\)
为了帮助CYY,我们定义一个量化情书好坏的标准感动值。判断感动值的方法如下:
1.在情书的一句话中若含有给定词汇列表中的特定单词,则感动值加1,但每一单词在同一句话中出现多次感动值不叠加,不同单词不受影响。保证输入的单词不重复。
2.每句话以英文句号定界。
3.全文不区分大小写。
\(\color{#0066ff}{输入格式}\)
第一行包含一个数字n,表示导致感动值提升的词汇列表中单词的数量,随后n行是给定单词,每行一个。保证单词只包含英文字母。
最后一行为情书正文,保证只包含以下几种字符: 英文字母、数字、空格、英文逗号、英文句号。
\(\color{#0066ff}{输出格式}\)
一个数字g,表示情书带来的感动值。
\(\color{#0066ff}{输入样例}\)
3
love
so
much
I love you so much.
\(\color{#0066ff}{输出样例}\)
3
\(\color{#0066ff}{数据范围与提示}\)
对于所有的数据,保证1 ≤ n,m,k ≤ 100,每个单词不超过50字符,全文不超过1000字符。
\(\color{#0066ff}{题解}\)
这题很水对不对? 随便模拟STL什么的轻松水过
我就是想练练Trie树
不知道是不是第一次写情书的缘故,这。。。

你Tm玩我呢!!!!
完美入坑!!!
1、按题目要求,必须整个单词匹配,是原文的字串不算
2、输入有逗号,要考虑
3、有一个点行末没有换行符,那么这个单词合法,有换行符不合法@@@@
4、不区分大小写!!!
5、写指针要写构造函数或初始化!!
6、时刻注意数组越界问题
#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
#include<cmath>
#define _ 0
#define LL long long
inline LL in()
{
LL x=0,f=1; char ch;
while(!isdigit(ch=getchar()))(ch=='-')&&(f=-f);
while(isdigit(ch)) x=x*10+(ch^48),ch=getchar();
return x*f;
}
struct node
{
node *ch[26];
int tag;
node()
{
for(int i=0;i<=25;i++) ch[i]=NULL;
tag=0;
}
void *operator new (size_t)
{
static node *S=NULL,*T=NULL;
return (S==T&&(T=(S=new node[1024])+1024),S++);
}
};
int n;
char s[1200];
int len,cnt=1;
struct Trie
{
node *root;
Trie() {root=new node();}
void ins()
{
char ch;
node *o=root;
while(!isalpha(ch=getchar()));
while(isalpha(ch))
{
ch=tolower(ch);
int p=ch-'a';
if(o->ch[p]==NULL) o->ch[p]=new node();
o=o->ch[p];
ch=getchar();
}
o->tag=-1;
}
bool have(int l,int r)
{
node *o=root;
for(int i=l;i<=r;i++)
{
int p=s[i]-'a';
if(!isalpha(s[i])||!o->ch[p]) return false;
o=o->ch[p];
}
if(o->tag==cnt||!o->tag) return false;
return o->tag=cnt,true;
}
void query()
{
int ans=0;
char ch;
while((ch=getchar())!=EOF)
{
ch=tolower(ch);
if(ch==' '||ch=='.'||ch==',')
{
ans+=have(1,len);
if(ch=='.') cnt++;
len=0;
continue;
}
s[++len]=ch;
}
ans+=have(1,len);
printf("%d",ans);
}
}t;
int main()
{
n=in();
for(int i=1;i<=n;i++) t.ins();
t.query();
return 0;
}
P2264 情书 Trie匹配的更多相关文章
- 洛谷P2264 情书
P2264 情书 88通过 971提交 题目提供者lin_toto 标签字符串 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 yyy快把题目改回来 噫 这题的题目好逗啊... 情书std ...
- 洛谷 P2264 情书
题目背景 一封好的情书需要撰写人全身心的投入.lin_toto同学看上了可爱的卡速米想对她表白,但却不知道自己写的情书是否能感动她,现在他带着情书请你来帮助他. 题目描述 为了帮助lin_toto,我 ...
- P2264 情书
传送门 正常会想到字典树 然鹅数据怎么小直接map也能过 然后就写map暴力匹配了 毫无思维难度,毫无代码难度 注意逗号算单词分隔符,如果有句号就算另一句 同一句的单词重复出现只计算一次贡献 再开个m ...
- P2264 情书(字符串hash90分)
题目背景 一封好的情书需要撰写人全身心的投入.lin_toto同学看上了可爱的卡速米想对她表白,但却不知道自己写的情书是否能感动她,现在他带着情书请你来帮助他. 题目描述 为了帮助lin_toto,我 ...
- Trie树入门
Trie树入门 貌似很多人会认为\(Trie\)是字符串类型,但是这是数据结构!!!. 详情见度娘 下面开始进入正题. PS:本文章所有代码未经编译,有错误还请大家指出. 引入 先来看一个问题 给 ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下.Noip2007 树网的核:floyd,推出性质,暴力.Noip2008 笨小猴:模拟Noip2008 火柴棒等式:枚举Noip2008 传纸条:棋盘dpNoip2 ...
- AC自动机基础知识讲解
AC自动机 转载自:小白 还可参考:飘过的小牛 1.KMP算法: a. 传统字符串的匹配和KMP: 对于字符串S = ”abcabcabdabba”,T = ”abcabd”,如果用T去匹配S下划线部 ...
- Keywords Search
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 字符串hash入门
简单介绍一下字符串hash 相信大家对于hash都不陌生 翻译过来就是搞砸,乱搞的意思嘛 hash算法广泛应用于计算机的各类领域,像什么md5,文件效验,磁力链接 等等都会用到hash算法 在信息学奥 ...
随机推荐
- postgresql 主从复制并切换
1 环境 192.168.19.145 Kylin 3.3 mysqlhq 9.5.2 psql_master192.168.19.227 Kylin 3.3 mysql3 9.5.2 p ...
- MySQL 学习五 SQL实用函数
0 select now() 显示当前时间. 1 select char_length('andyqan') 显示字符长度. 2 日期格式化 select date_format( ...
- 一段小程序理解getchar和putchar
#include "stdafx.h" #include <iostream> using namespace std; int main() { char c,d,e ...
- python的ftp上传和下载
# -*- coding: utf- -*- import os import ftplib USER_NAME = "" PASSWORD = "" SERV ...
- IIS安装与部署,站点的部署与配置
第一章:IIS安装与部署 一,服务器概念的理解: 将设计好的软件只要部署到一台机器(服务器--->IIS)上,其它的员工通过浏览器(网址.)来进行访问. 做好的网站必须部署到这台机器上的IIS中 ...
- 10-10C#基础---数据类型之间的转换
10-10 C#基础数据类型转换(熟练掌握) 第一课 数据类型之间的转换 基本类型的转换:自动转换(隐式转换)和强制转换(显示转换) 装箱转换:允许值类型隐式转换成引用类型. 拆箱转换:允许将引用类 ...
- 触摸事件MultiTouch Events
备注: userInteractionEnabled = NO hidden = YES alpha = 0.0~0.01 //如果上面三个属性被设置了则无法接收触摸事件 1.- (void)t ...
- Linux,du、df统计的硬盘使用情况不一致问题
[转]http://blog.linezing.com/?p=2136 Linux,du.df统计的硬盘使用情况不一致问题 在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使 ...
- UTF8转unicode说明
1.最新版iconv中的char *encTo = "UNICODE//IGNORE"; 是没有这个字符串的,它里面有UNICODELITTLE 和 UNICODEBIG 而且是没 ...
- 21、conda下载,安装,卸载
参考:https://www.cnblogs.com/Datapotumas/p/6293309.html 1.下载 conda下载网址:https://conda.io/miniconda.html ...