个人对dp的理解: 记忆化,先求出小问题的最优解,然后状态转移逐步求出原问题的解。递推是神,des。 使用dp前提: 能拆分为子问题并能求出状态转移方程,原问题是最优解的同时子问题也都是最优解。 无后效性,也就是一个状态的值只与当前有关,此刻求出多少就是多少。且不会因为达到最优地方式的不同而影响未来 ...
分类:
其他好文 时间:
2021-02-10 13:18:35
阅读次数:
0
树状数组 (Binary Index Tree, BIT) 用于解决这样一个问题:给定数组 a[n], 并且要求 w 次修改数组,现有 q 次区间查询,区间查询要求返回任意给定区间之和。 如果采用暴力方法,一次修改需要 \(O(1)\) 的时间复杂度,一次查询需要 \(O(n)\) 的时间复杂度,总 ...
分类:
编程语言 时间:
2021-01-16 11:53:30
阅读次数:
0
题目链接 #解题思路 由于题目中的数都是互不相同的,所以每交换一对数字,序列的逆序数的奇偶性就会改变一次(可以证明序列的奇偶性变化只与交换的这对数的大小关系有关)。 #代码 int arr[maxn], tmp[maxn], n, m; ll cnt; void merge(int l, int r ...
分类:
其他好文 时间:
2020-12-29 11:09:53
阅读次数:
0
考虑莫队。 如果是单纯的莫队的话,还需要一个树状数组来维护逆序对数,这样子的话复杂度是 \(O(n^{1.5}\log n)\),难以接受。 怎么将这个树状数组消除? 考虑当前区间为 \([l,r-1]\) ,需要将右端点向右移动,即加入 \(a_r\) ,并且将答案加上 \(a_{l,l+1,\c ...
分类:
其他好文 时间:
2020-12-25 12:28:35
阅读次数:
0
给定长为$n$的序列$A_i$,两种操作:
1. 将某个数$A_i$修改为$v$。
2. 查询用区间$[l,r]$内的数不能组成的最小的数(能组成$v$是指存在一个$[l,r]$的子集$s$使$s$的和等于$v$)。
$n,A_i\leq 2\times10^5$。 ...
分类:
编程语言 时间:
2020-12-10 10:50:09
阅读次数:
4
树状数组 lowbit : 求最低位的 $1$ 以及后面的 $0$ 所组成的十进制数 #include<iostream> #include<cstdio> #include<cstring> #include<math.h> #include<algorithm> #define ll long ...
分类:
编程语言 时间:
2020-12-09 12:01:36
阅读次数:
14
dpdp+树状数组O(n lg n)O(n lg n) 注意到我们在状态转移的时候要枚举f[j]f[j]的最大值来转移,我们可以考虑使用数据结构来维护从而优化一下,只要是支持单点修改和区间最值查询的数据结构都可以这么做,分块(O(nn??√))(O(nn))和树状数组(O(n lg n))(O(n ...
分类:
其他好文 时间:
2020-12-07 12:29:58
阅读次数:
6
1674. 使数组互补的最少操作次数 ? LeetCode第217周赛的第三题,比赛时卡了一个小时,没有想到O(n)的做法。对差分不熟悉,但是最关键的还是扫描的思路没有想到。由于这道题有这么几个点比较重要,觉得应该特别记录一下。 扫描:比赛时我也想到了当选定和K处于个个区间[2, lo]、[lo, ...
分类:
编程语言 时间:
2020-12-04 11:33:41
阅读次数:
9
Problem. 1 Junior - Thinking Desc. & Link. 注意到值域乘范围刚好能过。 然后就存两个桶即可。。。(数组开小飞了半天才调出来。。。) Problem. 2 Junior / Senior - Thinking Desc. & Link. 考虑一次反转后对整个序 ...
分类:
其他好文 时间:
2020-12-02 12:27:43
阅读次数:
4
树套树 一种思想,就是一棵树的节点是另一颗树。 在外面的叫外层树,在里面的叫内层树。 外层树一般是, 树状数组 , 线段树 内层树一般是 平衡树 , STL , 线段树 线段树套STL /* * @Author: zhl * @Date: 2020-11-16 12:50:32 */ #includ ...
分类:
其他好文 时间:
2020-11-20 12:20:30
阅读次数:
24