Part 1:CDQ分治 CDQ分治讲解博客 可以把CDQ分治理解为类似与归并排序求逆序对个数的一种分治算法(至少我现在是这么想的)。先处理完左右两边各自对答案的贡献,在处理跨越左右两边的对答案的贡献。 例题: 逆序对(二维偏序) 过水,不讲。 三维偏序 第一维先sort,第二维由归并保证,第三维在 ...
分类:
其他好文 时间:
2020-07-14 15:08:47
阅读次数:
90
Description link 给定一棵二叉树,每个叶子上面有权值,你可以任意交换某个点的两颗子树 使得最后形成的树的中序遍历出来的子树的逆序对最少 \(n \le 2\times10^5\) Solution 如果你真的想做这个题,请耐心手玩样例并看懂这个题神仙一样的输入方式…… 考虑逆序对怎么 ...
分类:
其他好文 时间:
2020-07-13 09:17:09
阅读次数:
52
题目链接:https://codeforces.com/problemset/problem/1114/F 题目大意:给你n个数,q次操作,类型1,将区间[l,r]中每个数乘以x,类型2,询问$\varphi (\prod_{i=l}^{r}a_i)$。其中初始的n个数每个小于等于300,x<=30 ...
分类:
其他好文 时间:
2020-07-12 19:09:23
阅读次数:
52
You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number ...
分类:
其他好文 时间:
2020-07-12 18:48:43
阅读次数:
50
https://ac.nowcoder.com/acm/contest/6046/C 二维线段树+区间异或+区间求和 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 usi ...
分类:
其他好文 时间:
2020-07-12 12:31:15
阅读次数:
68
线段树是一种二叉树,也就是对于一个线段,我们会用一个二叉树来表示。
可以进行一些区间的修改和查询。 ...
分类:
其他好文 时间:
2020-07-11 19:21:50
阅读次数:
41
https://www.luogu.com.cn/problem/P3372 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 kk。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n, mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 nn 个用 ...
分类:
其他好文 时间:
2020-07-11 19:19:17
阅读次数:
92
树状数组能做的线段树都可以,但是有的时候为了代码简单,能写树状数组就不写线段树。 树状数组是一种类似线段树的数据结构,只不过树状数组上的操作比较简单,最简单的就是单点修改和区间查询 树状数组是按照数的二进制形式进行存储数据,s[1]存储的是a[1] ,s[2]存储的是a[1]+a[2] ,s[3]存 ...
分类:
编程语言 时间:
2020-07-11 11:14:57
阅读次数:
81
刚开始想出了一个分治做法,但是比较麻烦,需要分 4 中情况讨论. 后来偷看了一眼标签发现是线段树,然后就想出了这个线段树做法. 考虑序列以 $r$ 为右端点的答案,有 $\sum_{l=1}^{i} max(l,i)-min(l,i)=i-l$. 其中这个条件可以写成 $max(l,i)-min(l ...
分类:
其他好文 时间:
2020-07-11 09:21:57
阅读次数:
70
F. Raging Thunder 先感叹一句,这个题目真变态,我写了五六个小时。。。。。而且还是在知道怎么写的情况下。。。 题目大意: 给你一个字符串,这个字符串只包含 \(>\) 和 \(<\) ,其中 \(>\) 表示该位置的球会向右滚一格, \(<\) 表示该位置的球会向左滚一格,如果最左边 ...
分类:
其他好文 时间:
2020-07-10 20:46:11
阅读次数:
46