数值统计:任意给定一个集合$a$,如果用$t[val]$保存数值$val$在集合中出现的次数,那么数组$t$在$[l,r]$上的区间和(即$\sum_{i=l}^{r} t[i]$)就表示集合$a$中范围在$[l,r]$内的数有多少个。 我们可以在集合$a$的数值范围上建立一个树状数组,来维护$t$ ...
分类:
编程语言 时间:
2019-06-25 17:21:31
阅读次数:
215
题目描述 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个? 输入输出格式 输入格式: 第一行为两个整数n,k。 输出格式: 写入一个整数,表示符合 ...
分类:
其他好文 时间:
2019-05-26 17:54:27
阅读次数:
102
双层循环排序,时间为O(n2) 归并排序时间为O(nlog(n)) ...
分类:
其他好文 时间:
2019-04-10 13:54:20
阅读次数:
182
K个逆序对数组 给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。 逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且 a[i] > a[j],则其为一个逆序对;否则不是。 由于答案可能很大,只需要返回 答案 mod 109 ...
分类:
编程语言 时间:
2019-02-15 01:12:14
阅读次数:
317
AGC 30 D 题意 :有一个长度为 $N(\leq 3000)$ 的序列。有 $Q(\leq 3000)$ 个操作 $(x_i,y_i)$。每个操作可以选择是否执行;若执行,则交换 $A_{x_i}$ 和 $A_{y_i}$。一共有 $2^Q$ 种选择方法。问所有选择方法最终序列里的逆序对数量之 ...
分类:
其他好文 时间:
2019-02-11 01:16:04
阅读次数:
177
B .Counting Inversion 题意:给定L,R,求这个区间的逆序对数之和。(L,R<1e15) 思路:一看这个范围就知道是数位DP。 只是维护的东西稍微多一点,需要记录后面的各种数字的个数cnt,以及逆序对和sum,以及出现了多少种后缀num。 那么枚举到当前位时,假设为i ,那么su ...
分类:
其他好文 时间:
2019-02-09 17:39:14
阅读次数:
322
DP常用优化 一.前缀和优化 当遇到类似:$f[i] = \sum_{j = k}^{i} g[j]$的转移时,可以通过预处理出$g[i]$的前缀和$s[i]$,将$O(n)$的求和转换为$O(1)?$的操作。 "[HAOI2009]逆序对数列" "[HAOI2008]木棍分割" 二分答案+dp " ...
分类:
其他好文 时间:
2019-01-20 18:00:47
阅读次数:
379
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define LL long long using namespace std; const int MAXSIZE = 100100; int b[ ...
分类:
其他好文 时间:
2019-01-17 11:38:56
阅读次数:
214
题目链接:https://vjudge.net/problem/POJ-2299 推荐讲解树状数组的博客:https://blog.csdn.net/int64ago/article/details/7429868 题目意思就是让我们把无序的一些数字经过相邻数字间两两交换,最后变成不递减的数字。我们 ...
分类:
编程语言 时间:
2019-01-13 18:04:47
阅读次数:
199