数据范围很小,直接O(n2)统计一下每个字符串逆序对数目,排个序就好了,有点惊讶,用了string,cin竟然还是0ms过的 ...
分类:
其他好文 时间:
2016-07-30 00:33:40
阅读次数:
163
2431: [HAOI2009]逆序对数列 Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个? 对于一个数列{ai},如果有 ...
分类:
其他好文 时间:
2016-06-26 21:05:58
阅读次数:
169
一个节点的儿子是否交换,不会影响到它和兄弟节点间的逆序对数。 所以每次合并线段树的时候算一下交换与不交换的逆序对数,然后选个较小值就行了。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm ...
分类:
其他好文 时间:
2016-06-18 18:17:41
阅读次数:
104
莫队算法+树状数组+离散化。 一定要注意莫队转移时增加或减少的逆序对数,比较容易写挂。 离散化那部分虽然效率很低,但是很好写,正确性也很容易保证,虽然会拖慢程序运行速度,但编码的复杂度却大大降低了。 我觉得是一种不错的选择。//反正是抄的黄学长的。。 #include #include #inclu... ...
分类:
其他好文 时间:
2016-06-01 21:13:23
阅读次数:
136
数组中的逆序对
参与人数:2205时间限制:1秒空间限制:32768K
本题知识点: 数组
算法知识视频讲解
题目描述
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。
没想到这道题能暴力破解。
class Solution {
public:
int Inverse...
分类:
编程语言 时间:
2016-05-12 16:50:44
阅读次数:
196
离线倒着做,每次加入一个节点后新增的逆序对数量就是其左边大于它的数的个数(左边数的总数-左边小于它的数的个数)+右边小于它的数的个数
用树状数组维护求和,对于树状数组中每个节点v所对应的区间线段树维护区间[l,r]中大于v的数的个数。
最后唯一的问题就是指针版线段树MLE……
#include
#include
#include
#include
#include
using na...
分类:
编程语言 时间:
2016-05-12 15:48:33
阅读次数:
234
乱搞,处理出这三样东西,[1,i]所包含的逆序对数cnt[i],区间[1,i]对于区间[j*sqrt(n),(j+1)*sqrt(n)]的逆序对数sum[j][i],以及倒序将每个元素插入主席树,那么询问[l,r]的答案就为[1,r]的逆序对数减去[1,l-1]的逆序对数减去(A,B)(A∈[1,l ...
分类:
其他好文 时间:
2016-05-05 02:04:22
阅读次数:
170
2431: [HAOI2009]逆序对数列 Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个? 对于一个数列{ai},如果有 ...
分类:
其他好文 时间:
2016-05-02 16:54:30
阅读次数:
139
题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemId=3128 题意:平面上有n条直线,给出l, r,求出这些直线的交点横坐标在(l, r)范围内的个数。 思路: 首先求出每条直线与直线x = l和直线x = r的交点,如下图。 ...
分类:
其他好文 时间:
2016-04-12 12:38:58
阅读次数:
254