洛谷 P2264 情书
题目背景
一封好的情书需要撰写人全身心的投入。lin_toto同学看上了可爱的卡速米想对她表白,但却不知道自己写的情书是否能感动她,现在他带着情书请你来帮助他。
题目描述
为了帮助lin_toto,我们定义一个量化情书好坏的标准感动值。判断感动值的方法如下:
1.在情书的一句话中若含有给定词汇列表中的特定单词,则感动值加1,但每一单词在同一句话中出现多次感动值不叠加,不同单词不受影响。保证输入的单词不重复。
2.每句话以英文句号定界。
3.全文不区分大小写。
输入输出格式
输入格式:
第一行包含一个数字n,表示导致感动值提升的词汇列表中单词的数量,随后n行是给定单词,每行一个。保证单词只包含英文字母。
最后一行为情书正文,保证只包含以下几种字符: 英文字母、数字、空格、英文逗号、英文句号。
输出格式:
一个数字g,表示情书带来的感动值。
输入输出样例
3
love
so
much
I love you so much.
3
说明
对于所有的数据,保证1 ≤ n,m,k ≤ 100,每个单词不超过50字符,全文不超过1000字符。
stl->set
这题是问句子中包含多少个感动的词 ,非常水是吧 ?
然后我萌萌的交了7次AC自动机,最高分40。。才发现 妈的这题和子串一点关系没有!
三个小时的时间啊╮(╯▽╰)╭
#include <cstring>
#include <cstdio>
#include <queue>
#define MAXN 1000010
int size=,n,num[MAXN],trie[MAXN][],fail[MAXN];
inline void ins(int Num,char *a)
{
int p=;
for(char *q=a;*q;q++)
{
int id=*q-'A';
if(!trie[p][id]) trie[p][id]=++size;
p=trie[p][id];
}
num[p]=Num;
}
std::queue<int>q;
void build()
{
for(int i=;i<=;i++) trie[][i]=;
q.push();
for(;!q.empty();q.pop())
{
int now=q.front();
for(int i=;i<=;i++)
{
if(trie[now][i])
{
if(now==) fail[trie[now][i]]=;
else
{
int tmp=fail[now];
for(;tmp;tmp=fail[tmp])
{
if(trie[tmp][i])
{
fail[trie[now][i]]=trie[tmp][i];
break;
}
}
if(!tmp) fail[trie[now][i]]=;
}
q.push(trie[now][i]);
}
}
}
}
bool vis[MAXN];
int query(char *a,int len)
{
memset(vis,,sizeof(vis));
int p=,ans=;
for(int i=;i<len;i++)
{
int id=a[i]-'A';
for(;!trie[p][id];p=fail[p]);
p=trie[p][id];
int now=p;
for(;now;now=fail[now])
{
if(num[now]&&!vis[num[now]])
{
vis[num[now]]=;
ans++;
}
}
}
return ans;
}
int main()
{
scanf("%d",&n);
char word[],a[];
for(int i=;i<=n;i++)
{
scanf("%s",word);
for(int j=;j<strlen(word);j++)
if(word[j]>='a'&&word[j]<='z')
word[j]-=;
ins(i,word);
}
build();
int k=,ans=;
char ch=getchar();
for(;scanf("%c",&ch)==;)
{
if(ch=='\n') break;
else if(ch=='.')
ans+=query(a,k),k=;
else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
if(ch>='a'&&ch<='z') a[k]=ch-;
else a[k]=ch;
k++;
}
else continue;
}
printf("%d",ans);
return ;
}
萌萌的40分AC自动机
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <string>
#include <set> using namespace std;
set<string>se,se2;
int ans,n;
int main()
{
scanf("%d",&n);
string a;
for(int i=;i<=n;i++)
{
cin>>a;
for(int i=;i<a.length();i++) if(a[i]>='a'&&a[i]<='z') a[i]-=;
se.insert(a);
}
char ch=getchar();
string b;
while(scanf("%c",&ch)==)
{
if(ch=='\n') break;
if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
{
if(ch>='a'&&ch<='z')
ch=ch-;
b+=ch;
}
else
{
if(!b.empty())
{
if(se.count(b))
se2.insert(b);
b.clear();
}
if(ch=='.') ans+=se2.size(),se2.clear(); }
}
printf("%d\n",ans);
return ;
}
洛谷 P2264 情书的更多相关文章
- 洛谷P2264 情书
P2264 情书 88通过 971提交 题目提供者lin_toto 标签字符串 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 yyy快把题目改回来 噫 这题的题目好逗啊... 情书std ...
- 题解【洛谷P2264】情书
题面 看到每一单词在同一句话中出现多次感动值不叠加,一眼想到 \(\text{set}\). 首先将词汇列表中的单词存储起来,我用的是 \(\text{set}\). 对于每一个句子的单词,我们可以先 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
随机推荐
- VS2008编了个MFC对话框,编译链接都没有问题,但是运行出来的对话框完全不能点击
误将整个对话框的属性中disable选为“True”,对话框不可用,选为false即可
- 用JavaScript方式创建easyUI datagrid Column Group(列组)
代码如下: <script type="text/javascript"> var datagrid; $(function(){ $('#datagrid').dat ...
- javascript runat server
<script runat="server"> protected void SubmitBtn_Click(object sender, EventArgs e) { ...
- 洛谷 - P3966 - 单词 - AC自动机
https://www.luogu.org/problemnew/show/P3966 因为文本串就是字典本身,所以这个和平时的AC自动机不太一样.平时的query要沿着fail树把子树的出现次数依次 ...
- gSoap学习笔记
http://www.cnblogs.com/xiangism/archive/2012/11/14/2770242.html http://www.cnblogs.com/lvkun/archive ...
- IT兄弟连 JavaWeb教程 JSTL标签的使用
假定甲方打算使用乙方开发的标签库,乙方把与标签库相关的所有文件打包成为了一个JAR文件(假定名为standard.jar),在这个JAR文件中包含以下内容: ● 标签处理类及相关的.class文件 ...
- SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...
- web项目数据存入mysql数据库中文乱码问题
刚开始怀疑是项目中编码设置问题,发现在web.xml中已经有过设置:后来dubug显示数据在传输的过程中一切正常,怀疑是数据库编码问题,然后查看mysql编码: show variables like ...
- Single-use Stones Codeforces - 965D
https://codeforces.com/contest/965/problem/D 太神仙了...比E难啊.. 首先呢,根据题意,可以很容易的建出一个最大流模型 就是每个位置建一条边,容量限制为 ...
- UG 常用设置
Q01:UG制图,添加基本视图之后的中心线怎么去掉? A01:“菜单-->文件-->首选项-->制图-->视图-->公共-->常规-->□带中心线创建”,取消 ...