摘要: 题意:给出n颗树,要砍这些树,工具会挥向这些高度不一的平行的树,掉落下来的高度的总和,就是砍掉的树的长度总和 给出一个至少砍到的长度值(题目中的树的长度大于等于这个长度值) 要求我们寻找一个最优的高度,让砍掉的数目长度尽量少,又能满足题意; 思路:这是二分经典题 我们定义一个最大区间范围之后,就开始 阅读全文
posted @ 2020-04-09 21:54 古比 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个模式串,再给出m个文本串 针对每一个文本串,假如文本串中包含模式串,就total++,然后输出包含的模式串,从小到达输出编号 思路:这道题有个地方需要注意一下,题目中给出的字符不单单只有小写字母,所以我们把trie的第二维开到128 其他地方没什么不同 但是! 我自我感觉这样子做是会超 阅读全文
posted @ 2020-04-09 17:44 古比 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意:给出模式串,再给出文本串,求出每个模式串的出现次数 思路:经典的跑AC自动机的题,但是有个坑:会有相同的字符 这道题得建fail树跑dfs,不然会超时 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+1 阅读全文
posted @ 2020-04-09 15:23 古比 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个模式串和一个文本串,求出哪一个模式串出现得次数最多,打印对应模式串(如果有多个,按输入顺序打印答案) 思路:用vis、sto数组来标记对应数组,打印得时候需要用到 然后跑自动机,跑得时候记录对应字符的出现次数即可 1 #include<bits/stdc++.h> 2 using na 阅读全文
posted @ 2020-04-09 15:19 古比 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意:给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过。 思路:建完tire,fail之后,开始跑自动机,然后对于走过的点,给一个标记,防止多次计算即可 为啥呢,因为求得是有多少模式串在文本串出现过,而不是出现次数 1 #include<bits/stdc++.h> 2 using na 阅读全文
posted @ 2020-04-09 15:13 古比 阅读(135) 评论(0) 推荐(0) 编辑