我果然还是太NAIVE了 一直没有学到这么搞基的求逆序对数方法 其实就是有点像计数排序 先开一个巨大的树状数组 然后插入一个数的时候看一下SUM 用当前位置减一下SUM就可以了 //其实就是求和 1 #include <iostream> 2 #include <cstdio> 3 #include ...
分类:
编程语言 时间:
2017-05-20 11:18:16
阅读次数:
281
线段树合并入门题。 分别计算左子树的逆序对,右子树的逆序对,合并的时候计算贡献。 ...
分类:
其他好文 时间:
2017-05-19 23:49:40
阅读次数:
219
今天做剑指offer上的一道求逆序对的题,用到了归并排序的思想,时间复杂度为O(nlogn),空间复杂度为O(n)。 偷了个懒从网上找到别人总结的归并排序的算法思想和code,直接粘过来方便随时查。 原文:http://www.cnblogs.com/jianboqi/archive/2013/01 ...
分类:
编程语言 时间:
2017-05-17 18:19:11
阅读次数:
179
按照插入数的大小排序, 然后依次进行dp。 用一个状态表示n个数是否被选了 10110 就是表示第1、3、4个位置都选了 那么如果此时这个数该填到5这个位置,那么必定会造成一个逆序(因为下一个数会填到2,下一个数必定比这个数大) 也就是转移的时候看插入位置前有多少个0,进行转移 写的时候有一些小技巧 ...
分类:
其他好文 时间:
2017-05-17 00:54:46
阅读次数:
281
问题 A: lyklyk?lyklyk! 题目描述 Lyk得到了一个1~n的全排列。Txm每次会交换第i个数和第j个数,对于每次交换,lyk需要回答该全排列的逆序对数为多少。“1、2、3、4......248289469!”lyk如是回答道。“最后答案取模2......” Lyk得到了一个1~n的全 ...
分类:
其他好文 时间:
2017-05-16 23:30:46
阅读次数:
272
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1020 题意:是中文题。 题解:很显然要设dp[i][j]表示,i个数有j个逆序对有几种然后就是状态的转移, dp[i][j]=dp[i-1][max(0,j-( ...
分类:
其他好文 时间:
2017-05-16 20:51:40
阅读次数:
205
题目描述 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
我怎么控制不住自己又写了个数据结构啊……真是的…… 其实我是想练CDQ分治的……结果忍不住又写了个主席树。 首先看看不动态的逆序对咋做?树状数组嘛。 那么删除咋搞?就是考虑贡献,把它前面比他大的,后面比他小的减去…… 诶?带修改主席树?我……我好像才写过……? 1 #include<bits/std ...
分类:
其他好文 时间:
2017-05-11 22:36:18
阅读次数:
198
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 题意:中文题诶~ 思路:通过题意可以发现对于两点p1(x1, y1),p2(x2, y2), 若x1<x2&&y1>y2则线段p1p2满足要求,那么显然可以 ...
分类:
编程语言 时间:
2017-05-10 21:23:21
阅读次数:
236
http://poj.org/problem?id=2299 题意:给出一组数,求逆序对。 思路: 这道题可以用树状数组解决,但是在此之前,需要对数据进行一下预处理。 这道题目的数据可以大到999,999,999,但数组肯定是无法开这么大的,但是每组数据最多只有500000个,那么,怎么办呢,离散化 ...
分类:
编程语言 时间:
2017-05-07 18:39:34
阅读次数:
157