
线段树、树状数组
huxinjianzs
这个作者很懒,什么都没留下…
展开
-
Ultra-QuickSort poj-2299
原题:POJ-2299 这个题目是一个求逆序数的题目 可以用树状数组、线段树、归并排序来做 树状数组、线段树只要先求和再更行就行了,插入法。在做的时候先要对序列进行离散,不然数字太大了 归并排序的做法是在合并的时候求逆序,假如有序列A和序列B,当Ai 以下代码是渣渣手写的,应该很容易看懂QAQ,结果sum要定义为 long long ! 树状数组原创 2017-02-02 13:07:09 · 270 阅读 · 0 评论 -
Sliding Window POJ - 2823 线段树区间更新
原题:POJ-2823 一个线段树求区间最大最小 很基础的一个题目 #include #include using namespace std; int n,k; int a[1000100]; int in[1000100],ax[1000100]; struct node { int mmax,mmin,l,r; node *lson,*rson;原创 2017-03-08 12:31:01 · 254 阅读 · 0 评论 -
树状数组求逆序数 HDU-1394 Minimum Inversion Number
题目地址:hdu-1394 从后往前update 每插入一个数便getsum一次 得到有多少比他小的数 便是这个位置的逆序对 把所有位置的逆序对加起来便可以得到逆序数 对与每个串来说,相对于上一个串只有第一个位置的数被挪到最后去了 所以逆序数的改变关系应该是 逆序数减去小于第一个数的个数再加上大于第一个数的个数 即 miin=sum - getsum(a[1]) + [n-1-g原创 2017-07-19 12:59:14 · 220 阅读 · 0 评论