- 博客(4)
- 收藏
- 关注
原创 高手专项训练-单调队列
有的球瓶的数字为负数,可以利用“被击倒的球瓶留下的空白位置”或者“原先球瓶左边或右边本来的空白位置”去尽可能地避免这些负分球。个排成一排的球瓶,每个球瓶上面有一个数字,表示击中它的得分。,会出事,所以用单调队列优化1的那个部分,时间复杂度为。距离内均有身高至少是它的两倍的奶牛,它就会觉得拥挤。,分别表示球瓶数量、保龄球的数量、保龄球的击打宽度。一行一个整数,表示觉得拥挤的奶牛的数量。为1时:枚举与前一个球的范围重合的大小。请计算觉得拥挤的奶牛的数量。,按顺序表示对应球瓶的分值。),跑两边单调队列,判断。
2024-07-24 22:54:54
855
原创 高手专项训练-树形DP
现在主要是处理有两个子节点的节点:思考一下,左右两个子树的方案数并不影响,可以将两棵子树的方案数相乘,表示在不干扰原子树内的方案顺序的方案数,然后我们还可以将两个子树内的方案数打乱重组,设子树。观察题目,发现每一部动漫的后继只有它的子节点中喜爱值最大的那一部漫画和它的兄弟中排在它后一位喜爱值的漫画两种可能,那我们可以将原树改造成一棵二叉树,方便我们进行dp。跟图中一样,枚举此点的三个子节点,将其中一个作为3类点,剩下两个作为1类点,将方案数进行统计,同理,这里的。由子节点的不同的两条链转移过来,这里的。
2024-07-24 00:50:51
623
原创 高手专项训练-背包问题
元钱,那我们就可以枚举一下john付了多少钱,然后将两个方面的问题分开,对john跑多重背包,对店家跑完全背包,寻找最小值。有点像分组背包,可以对每一座城堡的对手士兵数进行排序,从小到大判断,派兵多的一定能覆盖派兵少的对手,然后直接跑背包就好了。座城堡派遣的士兵数严格大于对手派遣士兵数的两倍,那么这名玩家就占领了这座城堡,获得。,分别表示除了小 A 以外的玩家人数、城堡数和每名玩家拥有的士兵数。一行一个整数,表示最少的交付硬币数与找零得到的硬币数,若无解则输出。个非负整数,表示一名玩家的策略,其中第。
2024-07-23 00:02:21
716
原创 高手专项训练-RMQ问题
每一个数都可能成为一个区间的最大值和最小值对答案产生贡献,用两个单调栈维护一下每个数成为区间最大值(最小值)的左右范围,最后统一计算答案即可。想法2中分治过程的分治树即为笛卡尔树,将原序列的笛卡尔树建出后计算,时间复杂度。定义一个数列的价值为:数列中最大的一个数减去最小的一个数(即该数列的极差)。现在给你一个数列,要你求出所有连续子数列的价值总和。的正整数,表示数列中的每个元素。的所有子区间的最大值贡献。的最大值所在位置,则所有跨过。输出所有连续子序列的总和。,计算其余区间的贡献即可。
2024-07-22 01:39:59
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人