题解 LG P2264
这是题解P2264
先讲一下Trie,其实Trie也名前缀树,就是说:如果Trie中某串是某串的前缀,那么我们可以共用这个串也就是这样:
插入h、hk、jc,jcfa
那么,h节点会给h和hk共用,jc串也会给jcfa共用。
对于本题来说,因为要考虑每个句子后要标记次数,所以Trie要有附加数组。
拿样例为例,我们原本会构建这样的一棵TRIE树:

但我们只要在底下最后一个点附加一个val数组来记录次数,因为要记录次数。
那么trie就沉了这样:
int ch[N][C],tot=1;
int check[N];
怎么写也就更简单了:
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
#define N 50005
#define rr register
#define C 27
string s,w;
int n;
int ch[N][C],tot=,ans;
string w1[N];
int check[N];
int idx(char s);
void insert(string s);
int find(string s);
char turn(char x);
int main()
{
cin>>n;
for(rr int i=;i<=n;i++)
{
cin>>w1[i];
for(rr int j=;j<=w1[i].size()-;j++)
w1[i][j]=turn(w1[i][j]);
insert(w1[i]);
}
int len;
getchar();
getline(cin,s);
len=s.size()-;
for(rr int i=;i<=len;i++)
{
s[i]=turn(s[i]);
if(s[i]=='.' or s[i]==',' or s[i]==' ')
{
if(find(w)==)
ans++;
if(s[i]=='.')
for(rr int j=;j<=n;j++)
insert(w1[j]);
w="";
}
else
w+=s[i];
}
cout<<ans;
return ;
}
int idx(char x)
{
int v;
v=(int)(x-'a');
return v;
}
void insert(string s)
{
int len=s.size()-;
int las=,w;
for(rr int i=;i<=len;i++)
{
w=idx(s[i]);
if(ch[las][w]==)
ch[las][w]=++tot;
las=ch[las][w];
}
check[las]=;
return;
}
int find(string s)
{
int len=s.size()-;
int las=,w;
for(rr int i=;i<=len;i++)
{
w=idx(s[i]);
if(ch[las][w]==)
return ;
las=ch[las][w];
}
if(check[las]==)
{
check[las]++;
return ;
}
else return ;
}
char turn(char x)
{
if(x>='A'&&x<='Z') return (x+);
else return x;
}
Update 2020.2.14 祝大家情人节快乐!
二分答案:
N方过百万,暴力碾标程
这是对不会STL+Trie的福音。
这是P2264的第2种做法。
我们想一下,题目中说了有N个可以加好感度的字符串。
众所周知,我们只需要按字典序排好序,那么N个字符串就会呈单调上升。
单调上升的话,我们就可以进行二分查找是否可以加好感度。
而二分查找的时间是logn,整个程序的时间就是O(Slogn)。
其中S是字符串长度。
题解 LG P2264的更多相关文章
- 题解【洛谷P2264】情书
题面 看到每一单词在同一句话中出现多次感动值不叠加,一眼想到 \(\text{set}\). 首先将词汇列表中的单词存储起来,我用的是 \(\text{set}\). 对于每一个句子的单词,我们可以先 ...
- 洛谷P2264 情书
P2264 情书 88通过 971提交 题目提供者lin_toto 标签字符串 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 yyy快把题目改回来 噫 这题的题目好逗啊... 情书std ...
- “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】
A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT ...
- 算法(第四版)C# 习题题解——3.1
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...
- 算法(第四版)C# 习题题解——2.4
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...
- 算法(第四版)C# 习题题解——1.5
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...
- 十二省联考题解 - JLOI2019 题解
十二省联考题解 - JLOI2019 题解 两个T3的难度较大 平均代码量远大于去年省选 套路题考查居多 A 难度等级 1 $n^2$暴力可以拿到$60$分的优秀成绩 然后可以想到把区间异或转化为前缀 ...
- WC 2018 题解
WC 2018 题解 一些感受.jpg 题目难度相较前些年会相对简单一点?(FAKE.jpg 平均码量符合WC风格?(甚至更多一点 出题人良心! [WC2018] 通道 一个不知道对不对的$\log ...
- Nowcoder | [题解-N210]牛客OI月赛2-提高组
比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1 ...
随机推荐
- pikachu-搜索型注入 #手工注入
1.搜索型注入漏洞产生的原因: 在搭建网站的时候为了方便用户搜索该网站中的资源,程序员在写网站脚本的时候加入了搜索功能,但是忽略了对搜索变量的过滤,造成了搜索型注入漏洞,又称文本框注入. 2.搜索型注 ...
- CocosCreator内存与性能优化
一.内存优化 因为 iOS小游戏和微信共用同一个进程,而微信在连续两次收到系统内存警告的时候会关闭小游戏并释放小游戏占用的内存.如果你的小游戏有外网用户反馈“闪退”,或者你自己测试的时候频繁出现“该小 ...
- Cisco 3702i TX功率图
有关思科TX Power选择的一些基本信息: 思科使用1到8的等级,其中1是最高功率,8是最低功率虽然比例上升到8,但不是每个band都使用(0-7)8个数据中的所有值.每个数字都有一个相应的dBm值 ...
- ISR high memory参数
1.通过 show process memory 获取的数据参数解释: 来自 <http://blog.router-switch.com/2013/12/show-processes-memo ...
- Codeforces Round #600 (Div. 2) - B. Silly Mistake(模拟)
题意:有一个公司,每天有员工进出,$a[i]>0$时表示$a[i]$这个员工进入公司,$a[i]<0$时表示$-a[i]$这个员工出公司,公司对进出办公室有一些严格的规定 员工每天最多只能 ...
- ypACM社团年终赛暨实验室选拔赛题解
记得补题,题目两小时半还是挺困难ak的,毕竟我验题也验了几天的时间,题目基本没有锅.题目基本属于简单题 我的三道题都是很基本的题目,希望大家补题 这些题解都是我写的,如果有疑问可以qq问我 所有的核心 ...
- 通过LAMP部署phpMyAdmin、wordpress(https)、discuz
1.安装启动LAMP 安装环境: CentOS Linux release 7.5.1804 安装包: # yum -y install httpd php php-mysql mariadb-ser ...
- 2018 最新注册码【激活码】、在线激活 pycharm 完整方法(亲测有效)【2018.06.01 重大更新!!!!】
2018-06-01修改如下: 原来方法的第二种还是有效的,操作如下 (1)更新hosts文件(可以直接下载,然后解压缩) host文件地址 hosts文件,在windows中的地址为: 替换host ...
- Python - 同时运行两个以上的脚本
在c.py中 import os os.system("python a.py") os.system("python b.py")
- 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据
用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...