Bitwise Xor 我们可以发现一个序列中的最小的异或值是两个大小相邻的数的$xor$取$min$。 那么我们对序列排序。 只需要计算相邻的$xor$是大于等于$k$的方案。 $dp[i]$是以$i$结尾最小$xor$大于$K$的方案。 然后我们可以类似于用树状数组来搞最长升降转移。 这次用$t ...
分类:
其他好文 时间:
2020-04-07 22:27:16
阅读次数:
80
树状数组(下) [TOC] 在 "树状数组(上)" 中我提到了树状数组的基本操作与变式,现在来看看它的实际应用和一些题目。 应用 逆序对 设$a$为一个有$n$个数字的有序集($n 1$),其中所有数字各不相同。 如果存在正整数$i$,$j$使得$1\leqslant ia[j]$, 则有序对$(a ...
分类:
编程语言 时间:
2020-04-05 22:19:08
阅读次数:
102
像这种计数 问题什么的 是最讨厌的了... 考虑是环往环后面再续一段 暴力枚举前两个数字 树状数组统计第三个数的个数 n^2log. 考虑只枚举第个数 发现由于边界问题什么的很难处理。 再将枚举直接放到环上 发现边界问题没有了 不过存在 枚举第二个数之后 有 123 231 312 这三种形式。 第 ...
分类:
编程语言 时间:
2020-04-04 18:35:41
阅读次数:
71
CSP S2019 D2T3 "树的重心" (centroid) 本题解是[题解栏][0]内一些常见思路的集合。 为了篇幅紧凑,在一些地方我可能跳过了证明/阐述的不是怎么详细,如果希望看到某一个思路的详细阐述/代码,可以点击相关的超链接。 思路 本题的部分分启发我们去找性质: 1. 链的部分分启发我 ...
分类:
其他好文 时间:
2020-03-31 17:23:59
阅读次数:
182
题目【模板】树状数组1:https://www.luogu.com.cn/problem/P3374 树状数组和线段树差不多,可以处理区间操作,但是处理不了太复杂的区间问题。,不过代码比线段树简洁很多很多!!!时间复杂度都为O(logn)。 例如,区间[1,8]存储方式如下: 1 tree[1]=n ...
分类:
编程语言 时间:
2020-03-31 10:29:37
阅读次数:
65
https://codeforces.com/contest/1328/problem/F 首先把a数组处理成pair对(num,cnt),表示数字num有cnt个,然后按num升序排序离散化一下。 对于一个数x,若想使得小于x的数字都变成x,必须先把所有小于x的数变成x-1,然后再+1变成x。 同 ...
分类:
编程语言 时间:
2020-03-29 01:15:50
阅读次数:
94
如果这道题没有一个限制,那么就是一道树状数组+dfs序的裸题 第一个请求或许会带来困惑,导致想要动态建树,如果真的动态修改树,那么dfs序必定会改变,很难维护,并且数据很大,暴力应该会T 所以不妨先把全部的节点建好,这样只需要求一次dfs序,而对于第一种操作 我们只需要再那个位置减去在他之前的dfs ...
分类:
编程语言 时间:
2020-03-25 23:45:29
阅读次数:
130
LINK: "紫荆花之恋" 每次动态加入一个节点 统计 有多少个节点和当前节点的距离小于他们的权值和。 显然我们不能n^2暴力。 考虑一个简化版的问题 树已经给出 每次求某个节点和其他节点的贡献。 不难想到我们直接把所有点的答案求出来 直接输出就好了 求所有点的答案 可以上点分治了树状数组维护一波就 ...
分类:
其他好文 时间:
2020-03-21 13:10:48
阅读次数:
62
概述 这篇文章前半部分主要研究树状数组的 ,后半部分研究 。 前置知识 树状数组的基本知识以及单点更新区间求和,差分的思想。 区间更新,单点求和 分析 回顾一下最简单的树状数组的功能:快速求出一个数列中某个数的前缀和,以及修改一个位置上的数。 现在我们要利用这两个功能实现:快速求出某个数列中某个数的 ...
分类:
编程语言 时间:
2020-03-16 09:54:11
阅读次数:
59
"题目" 题意:找到数组里每个元素的右边有多少个元素小于当前元素 题解:单点更新,区间查询。线段树或者树状数组都可以。注意要离散化 ...
分类:
编程语言 时间:
2020-03-13 20:55:32
阅读次数:
68