题意: 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值 using namespace std; typedef long long ll; ll dp[30][55] ...
分类:
其他好文 时间:
2020-02-06 18:16:06
阅读次数:
69
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 模板题: 代码 #includ ...
分类:
其他好文 时间:
2020-02-06 14:57:24
阅读次数:
76
模板题,提供两种思路。 1.考虑它求得是 出现个数$ \lfloor \frac{r l+1}{k}\rfloor$ 的最小值 那么我们可以根据如果大于这个数那么你把这个区间数列 排好序 然后分段,分成 $k$ 段,每次上下整都取,方便处理.webp 因为 $k\leq5$ 所以上下整都取不会超过 ...
分类:
其他好文 时间:
2020-02-06 01:24:13
阅读次数:
69
题目连接 题意:求一个字符串的最长回文子串 题解:是一个Manacher模板题,为了统一奇偶,先预处理在字符间添加间隔,使字符串长度变为偶数,例如"abc"添加分隔符后变成"$#a#b#c#",剩下的就很简单了,这个题也可以用哈希做。就时间复杂度来看Manacher明显比哈希快。 Manacher代 ...
分类:
其他好文 时间:
2020-02-04 23:46:00
阅读次数:
69
终于学了 CDQ 分治了 简介 CDQ 分治是一个神奇的算法,它可以代替一些毒瘤的数据结构,而且常数极小,但美中不足的是它要求离线。 它一般用来解决序列上的一些点对问题,大概是如下流程: 1. 将序列分为三类: $l\le i \le mid, 1 \le j \le mid$ 的点对 $mid 给 ...
分类:
其他好文 时间:
2020-02-04 15:41:33
阅读次数:
54
题意: 给你一堆单词与询问,每次询问给一个字符串s问以s为前缀的字符串有多少 思路: #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int maxn=400009; struct ...
分类:
编程语言 时间:
2020-02-03 22:28:15
阅读次数:
99
主席树,即可持久化线段树,它是在权值线段树的基础上,记录了每个历史版本,从而可以方便快速的处理一些区间问题,最经典的应用有查询区间第 k 小。 当然,如果我们直接每次修改开一棵线段树,空间复杂度太大,肯定不行。但我们可以发现每次修改都只会改变一个结点的值,对于线段树来说,也就是只会有左儿子或者右儿子 ...
分类:
其他好文 时间:
2020-02-03 20:49:01
阅读次数:
70
区间k小数是主席树的模板题目,如果区间不包含,用莫队+权值线段树也能解 主席树是可持久化线段树,所为可持久化,就是每次只新增不一样的节点,而保留前面的版本,这样可以做到查询。 如果询问时1-r,那么直接主席树,询问的是l-r,就用到前缀和思想,具体看代码注释 #include<iostream> # ...
题:http://acm.hdu.edu.cn/showproblem.php?pid=2222 学习出:https://bestsort.cn/2019/04/28/402/ 主要是fail的建立。在跳的过程就是不断跳fail,而不是跳到一个fail再往下!! #include<iostream> ...
分类:
其他好文 时间:
2020-02-03 15:34:16
阅读次数:
64
#include<bits/stdc++.h> using namespace std; void read(int &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-f; for(;is ...
分类:
其他好文 时间:
2020-02-02 17:26:24
阅读次数:
48