codevs——1688 求逆序对 前面刚刚说了逆序对,那就先那个题来练练手吧。。。(虽然是个板子(⊙o⊙)…) 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 codevs——1688 求逆序对 前面刚刚说了逆序对,那就先那个题来练练手吧。。。(虽然是个板子 ...
分类:
其他好文 时间:
2017-06-02 21:12:33
阅读次数:
221
方法一:树状数组 模板如下: #include<iostream> #include<cstdio> #include <algorithm> using namespace std; const int MAXN=40001; int n, a[MAXN], tree[MAXN], tot; in ...
分类:
其他好文 时间:
2017-06-02 11:43:05
阅读次数:
135
【算法】离散化+树状数组(求逆序对) 【题解】经典,原理是统计在i之前插入的且值≤i的个数,然后答案就是i-getsum(i) #include<cstdio> #include<algorithm> #include<cstring> #define lowbit(x) x&(-x) using ...
分类:
其他好文 时间:
2017-05-28 19:37:05
阅读次数:
191
To 洛谷.1774 最接近神的人 题目描述 破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的问题是如何打开这扇门…… 仔细研究后,他发现门上 ...
分类:
其他好文 时间:
2017-05-23 14:19:09
阅读次数:
325
逆序对在很多地方用的到。以前都是用归并排序或线段树求,在《mato的文件管理》看到有人用树状数组求,很简单!整理如下: 思路: 首先,开一个大小为这些数的最大值的数组,作为树状数组。 然后,将各个数按顺序依次加入该数组。方法为:这个数大小对应的它在线段树中的位置,对这个位置上的数加1,并更新树状数组 ...
分类:
编程语言 时间:
2017-05-22 11:03:13
阅读次数:
267
逆序对指的是这样一种东西,在一个序列x中,某两个数x[i]和x[j]满足x[i]>x[j],且i<j。luogu有很多题可以练习这种题,例如我今天做的火柴排队(NOIP2013),再例如P1908逆序对 逆序对有很多种求法,在数据规模较小的时候可以n2暴力,较大的可以归并,树状数组解法是一种树状数组 ...
分类:
编程语言 时间:
2017-05-21 17:44:59
阅读次数:
242
我果然还是太NAIVE了 一直没有学到这么搞基的求逆序对数方法 其实就是有点像计数排序 先开一个巨大的树状数组 然后插入一个数的时候看一下SUM 用当前位置减一下SUM就可以了 //其实就是求和 1 #include <iostream> 2 #include <cstdio> 3 #include ...
分类:
编程语言 时间:
2017-05-20 11:18:16
阅读次数:
281
今天做剑指offer上的一道求逆序对的题,用到了归并排序的思想,时间复杂度为O(nlogn),空间复杂度为O(n)。 偷了个懒从网上找到别人总结的归并排序的算法思想和code,直接粘过来方便随时查。 原文:http://www.cnblogs.com/jianboqi/archive/2013/01 ...
分类:
编程语言 时间:
2017-05-17 18:19:11
阅读次数:
179
题目描述 Description 给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目 数据范围:N<=105。Ai<=105。时间限制为1s。 输入描述 Input Description 第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中 ...
分类:
其他好文 时间:
2017-05-14 01:01:29
阅读次数:
200
http://poj.org/problem?id=2299 题意:给出一组数,求逆序对。 思路: 这道题可以用树状数组解决,但是在此之前,需要对数据进行一下预处理。 这道题目的数据可以大到999,999,999,但数组肯定是无法开这么大的,但是每组数据最多只有500000个,那么,怎么办呢,离散化 ...
分类:
编程语言 时间:
2017-05-07 18:39:34
阅读次数:
157