![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
文章平均质量分 77
XINNNNNNNYU
这个作者很懒,什么都没留下…
展开
-
子串的最大差
对于每个数计算它的贡献。贡献分为两部分,一部分是作为最大值,一部分是作为最小值。当a[i]作为最大值,你要找到它左边第一个大于等于(可能存在连续相等的数,避免重复左闭右开)他的数位置l和右边第一个比他大的数位置r,那么当前树的贡献是a[i] * (i-l)* (r-i)。最小值同理不过是减去。给你一个数组,求所有区间的(最大值-最小值)的和。这里介绍两种寻找每个数的l,r的方法。原创 2022-12-08 14:58:50 · 92 阅读 · 1 评论 -
字符串匹配进阶
A位模式串,长度为n;B为文本串,长度为m。1.没有通配符的调整匹配函数——和上述没有通配符的相同,但是我们要去掉通配符位置的贡献。将原字符串是通配符的值设为0,再修改完全匹配匹配函数为P(x)=∑i=0m−1(S[m−i−1]−B[x−m+i+1])2S[m−i−1]B[x−m+i+1]P(x) =\displaystyle \sum^{m-1}_{i=0} (S[m-i-1] - B[x-m+i+1])^2S[m-i-1]B[x-m+i+1]P(x)=i=0∑m−1(S[m−i−1]−B[x−m+i+原创 2022-12-08 14:58:10 · 108 阅读 · 0 评论 -
数位DP套路模板
显然,是一种DP。再显然,是一种关于每一位数字之间关系(性质)的DP题目描述一般是求【L,R】范围内满足各位数字间存在某种规律的数有几个数位DP的题目数据范围往往很大,动不动就是1e18,但是由于是数位DP只跟位数有关,所以也就18位。使用记忆化搜索进行DP因为会出现重复出现的状态,使用记忆化搜索可以减少重复的搜索,减少复杂度。 从起点向下搜索,搜索的途中累加每一位的答案,最后在起点得到答案。 对于[L,R]的区间问题,一般我们可以根据前缀和相减转化为[0,R] - [0,L-1]的问题。pos, 当原创 2022-12-08 14:56:12 · 132 阅读 · 0 评论 -
树形DP常见基本题型
**题意:**求选择的点的权值和最大。限制条件:若父节点被选,子节点不能被选状态机模型,不过不能用循环枚举顺序,用树上dfs递归的方式进行枚举。代码Computer**题意:**求每个点与其他任意一点的最远距离给的是一棵树,每个节点都有且只有一个父亲。且本题节点1是根节点。对于一个节点他的最远距离有两种然后这两种取最大值代码Strategic game**题意:**给你一幅图,要求每条边至少一个端点为1,求所有端点权值和最小值。也是状态机加上dfs的递归顺序。从根节点开始先递归在DP计算,这样最原创 2022-12-08 14:54:11 · 115 阅读 · 0 评论 -
三角果计数
我们枚举的是其中两个点的最近公共祖先,然后在他的两个子树中各选一个作为其中两个点,那么第三点的数量就是除了这两棵子树和这个点以外的所有点。当三个点在同一条链上时,他们的最短路始终满足较小两边加起来等于第三边,不满足三角形。求一个数上有几种三点的集合,他们两两的最短路能形成一个三角形。我们枚举两个点,看有多少个第三点满足条件。原创 2022-12-08 14:51:10 · 74 阅读 · 0 评论 -
2021上海ICPC--H.Life is a Game--Kruskal重构树--铜牌拦路虎
Kruskal 重构树是图的一种生成树,主要解决路径边权限制问题。Kruskal 重构树有按深度单调的性质,所以很容易就可以解决边权的取值限制。原创 2022-12-08 14:42:58 · 114 阅读 · 0 评论 -
第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 K金牌厨师
Phenix作为金牌厨师对每天工作的满意程度定义为选出的同学的人数kk和能让这部分同学都接受的菜的种类数xx(这里理解为一种辣度对应一种菜)两者中的最小值,即min(k,x)。Phenix作为食堂的金牌厨师,每天的工作是为同学们准备饭菜,Phenix做出的每一种菜都有一个辣度值,范围是[1,n][1,n]。作为厨师,Phenix提前了解了m位同学的辣度接受范围,第i位同学的辣度接受范围被描述为。第一行两个整数n,m,表示菜的辣度最大值和同学的人数(1原创 2022-12-08 14:44:23 · 235 阅读 · 0 评论