CF1397C \(CF round 666\) 好神仙 题目大意 给定你一个长度为 \(n\) 的序列。 你可以进行 $3$ 次操作。 每次可以选定一个区间,把这个区间的每个数都加上 \(len \times x\) $1.$ 数 \(x\) 是整数(可以为负) $2.$ 对于区间的每个数可以取不 ...
分类:
其他好文 时间:
2020-10-18 16:57:41
阅读次数:
20
题意简述: 给定一个长度为 \(n\) 的序列,支持 \(n\) 个操作 \(\text{I a b c}\) 表示将 \([a,b]\) 这一段区间的元素集体增加 \(c\); \(\text{R a b}\) 表示将 \([a,b]\) 区间内所有元素变成相反数; \(\text{Q a b c ...
分类:
其他好文 时间:
2020-10-18 10:08:55
阅读次数:
18
#简述: 给定序列,查询是否存在全部符合给定种类至少给定此种类数量的区间,并输出最小值 #解法: 氵题,当我知道T4是最简单的题但我选择了硬肛T1之后: 我在写尺取法 2min later,我写完尺取法了 几乎是尺取法板子,即同时移动左右指针,看是否存在合法序列,开个桶随便搞搞就行 不会尺取法的可以 ...
分类:
其他好文 时间:
2020-10-18 10:04:32
阅读次数:
16
题目 题目 做法 啊,这道题目一点思路都没有啊。 这么神奇的吗。 就是死命的推式子,这里用一下这位大佬的证明。 当然,写这个博客主要是想讲一下维护平方和和区间加减。 首先,区间的$lazy$标记具有可加性:\((x+k+k)^2=(x+2k)^2\),因此,$lazy$标记可以叠加,只要计算每一个$ ...
分类:
其他好文 时间:
2020-10-16 10:28:22
阅读次数:
19
答案就是就是区间没有覆盖的长度 有一个直接的想法就是我们发现能够通过推倒建立起来的关系就是一个集合,也就是用并查集缩点,那么之后只需要维护一个后缀和就能做 因为我们不可以将前面的询问影响到后面的答案,因此考虑倒序做。 可以考虑维护一个栈,不断合并能够合并的点,这样后缀和就是栈顶第一个没被合并的点的后 ...
分类:
其他好文 时间:
2020-10-13 17:46:19
阅读次数:
29
线段树 对于维护区间内的信息,我们可使用RMQ,但这种做法的缺点是无法快速修改,而线段树这种数据结构则可以实现实时的查询、修改(单点、区间)。 原理: 线段树是一种二叉搜索树,对于每个节点,他代表区间L~R的信息,而其两个子节点分别代表L~mid、mid+1~R的信息。 建树: 只需要遍历到每个叶子 ...
分类:
其他好文 时间:
2020-10-13 16:58:38
阅读次数:
18
647. 回文子串 暴力三循环,一共有 n(n+1)/2个子串,分别判断每个子串是否是回文串 1 class Solution { 2 public int countSubstrings(String s) { 3 // 暴力三循环,一共有 n(n+1)/2个子串,分别判断每个子串是否是回文串 4 ...
分类:
其他好文 时间:
2020-10-09 21:12:05
阅读次数:
21
##问题描述 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2 ...
分类:
其他好文 时间:
2020-10-07 21:44:46
阅读次数:
36
题目 有两个序列长$n$为$A_i$,\(B_i\),需要进行两种操作,共进行$q$次 \(查询区间 \sum_{l\leq i<j\leq r}{(A_iB_j - A_jB_i)}的值,结果对 998244353 取模\) \(把 (A_i , B_i) 修改为 (x,y)\) 对于$20 %$ ...
分类:
其他好文 时间:
2020-10-07 21:39:36
阅读次数:
32
题目描述 分析 方法一(线段树) 线段树维护的是以当前节点为左端点的区间的贡献 而区间的右端点则会从 $1$ 到 \(n\) 逐渐右移 当我们把右端点从 \(i-1\) 的位置扩展到 \(i\) 的位置时 如果原先区间的最近公共祖先到根节点的路径中经过 \(a[i-1]\) 和 \(a[i]\) 的 ...
分类:
其他好文 时间:
2020-10-07 21:33:49
阅读次数:
17