题目链接: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
题目: #1141 : 二分·归并排序之逆序对 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回、上上回以及上上上回里我们知道Nettle在玩《艦これ》。经过了一番苦战之后,Nettle又获得了的很多很多的船。这一天Nettle在检查自己的舰队列表:我们可以看到 ...
分类:
编程语言 时间:
2016-04-11 22:02:35
阅读次数:
224
还是分块>_< 强制在线求区间逆序。。如果没有空间限制的话显然是树套树? 分成根号n块,预处理出sum[i][j]表示从第i块的左端,到第j个点 这段区间内的逆序对个数。这部分可以直接树状数组O(n^1.5 logn) 那么对于每个询问,我们只要考虑左侧的零散节点对答案的贡献了。。 因此需要快速求出 ...
分类:
其他好文 时间:
2016-04-11 20:27:25
阅读次数:
223
题目大意是在能够改变两个数的位置的情况下计算逆序对数 这因为是动态记录逆序对 本来单纯逆序对只要用树状数组计算即可,但这里因为更新,所以利用TReap树的删点和增加点来进行更新 大致是把每个树状数组所管理的点都放在对应的Treap树下, 这样x-=lowbit(x)下来,正好访问到是所有比他小范围下 ...
分类:
编程语言 时间:
2016-04-08 21:21:24
阅读次数:
311
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 1 class Solution { 2 public: 3 int InversePairsCore(vector<int> &data,vector<int>& ...
分类:
编程语言 时间:
2016-04-06 13:27:10
阅读次数:
137
4163 hzwer与逆序对 时间限制: 10 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 4163 hzwer与逆序对 4163 hzwer与逆序对 时间限制: 10 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 时间限制: 10 s 空间限制: 2560 ...
分类:
编程语言 时间:
2016-04-04 18:06:32
阅读次数:
189
树状数组的区间求和单点更新只与操作数组c[] 相关 ; 与a[] 并无关系; hdoj2642--Stars hdoj1394求逆序数: 逆序对性质: 交换两个相邻数,逆序数+1或-1, 交换两个不相邻数a, b, 逆序数+=两者间大于a的个数-两者间小于a的个数 可得公式: ans= ans+n- ...
分类:
编程语言 时间:
2016-04-04 18:06:29
阅读次数:
209
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目让你求一个数组,这个数组可以不断把最前面的元素移到最后,让你求其中某个数组中的逆序对最小是多少。 一开始就求原来初始数组的逆序对,树状数组求或者归并方法求(可以看《挑战程序设计》P178),然 ...
分类:
编程语言 时间:
2016-04-04 14:42:16
阅读次数:
133
Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一 ...
分类:
其他好文 时间:
2016-04-01 22:05:27
阅读次数:
268
#include<iostream>using namespace std;int a[500100];int t[500100];long long ans;void sort(int l,int r){ if(l==r) return ; int mid=(l+r)/2; sort(l,mid) ...
分类:
编程语言 时间:
2016-04-01 20:17:48
阅读次数:
129