当前位置:网站首页>【学习笔记】线段树选做

【学习笔记】线段树选做

2022-07-07 10:59:00 仰望星空的蚂蚁

全是暴力

打线段树好累

Fibonotci

一看这个线性递推关系显然是矩阵乘法

码码码 。。。

呼 。。写完了 。

Two Permutations

序列 hash ?

毋宁称之为线段树维护序列 hash 值的好题

类比 Permutation 。本质在于将复杂状态用一个整数表示,这样复杂度更优 。

Strange Addition

显然线段树维护 dp 。

注意细节 。以及不要算重 。

如果实现精细的话可以不用去前导零。轻微卡常。

Strange Array

膜拜 wicton 。

这题做法没那么明显 。

考虑从 [i,i] 进行扩展

分区间奇偶性讨论

考虑一个 < a i <a_i <ai 的数和 > a i >a_i >ai 的数会抵消

a i a_i ai 看成 < a i <a_i <ai > a i >a_i >ai 两种情况考虑两次,这样不会出现相等的元素

≤ a i \leq a_i ai 的数看成 1 1 1 > a i >a_i >ai 的数看成 − 1 -1 1

分别向左右扩展 ,找最大子段和 a n s ans ans ,贡献为 ⌊ a n s − 1 2 ⌋ \lfloor\frac{ans-1}{2}\rfloor 2ans1

≥ a i \geq a_i ai 的数看成 1 1 1 < a i <a_i <ai 的数看成 − 1 -1 1

分别向左右扩展 ,找最大子段和 a n s ans ans ,贡献为 ⌊ a n s 2 ⌋ \lfloor\frac{ans}{2}\rfloor 2ans

码码码 。。。

呼 。。写完了 。

Phoenix and Memory

行百里者,半九十 。

首先贪心求一组方案

如果要得到不同的序列的话,一定存在 ( i , j ) (i,j) (i,j) ( i ≠ j ) (i\ne j) (i=j)使得 l i ≤ a j ≤ r i l_i\leq a_j\leq r_i liajri 并且 l j ≤ a i ≤ r j l_j\leq a_i\leq r_j ljairj

感性理解的话,如果你在贪心的最优方案上换的越多,方案也就更劣 。

证明略了 。

原网站

版权声明
本文为[仰望星空的蚂蚁]所创,转载请带上原文链接,感谢
https://blog.csdn.net/cqbzlydd/article/details/125644360