摘要:
线段树的一个应用,求逆序数。思路为:sum[i]为0代表i未出现,为1则已经出现,然后查询时我们只要统计新加入的数到n-1这个范围内有多少个sum[i]为1,也就是当前数的逆序,然后累加,就是我们要求的逆序数。因为其他形式都可以由第一次求得的逆序数递推而来,所以只需计算一次。/*2012-08-07 16:54:38 Accepted 1394 78MS 252K 1478 B G++ Yu*/#include<stdio.h>#include<algorithm>using namespace std;#define lson l, m, rt ... 阅读全文
posted @ 2012-08-07 17:02
找回失去的
阅读(190)
评论(0)
推荐(0)
摘要:
转自http://www.2cto.com/kf/201111/111542.html1. 逆序数所谓逆序数,就是指一个序列S[i],统计处于序列的每个数的比这个数大并且排在它前面的数的数目,然后对于所有数,把这个数目加起来求和就是了。比如4 3 1 24第一个,所以数目为03的前面是4,大于3的数目为11的前面是4 3 ,大于1的数目为22的前面是4 3 1,大于2的数目为2所以逆序数为1+2+2 = 5求逆序数的两种方法常规方法是按照逆序数的规则做,结果复杂度是O(n*n),一般来说,有两种快速的求逆序数的方法分别是归并排序和树状数组法2. 归并排序归并排序是源于分而治之思想,详细的过程可 阅读全文
posted @ 2012-08-07 16:20
找回失去的
阅读(6248)
评论(0)
推荐(0)
摘要:
同样是线段树,这道题是求区间最值,单点更新。线段树代码愈发熟练。/*2012-08-07 16:02:53 Accepted 1754 1093MS 2276K 1361 B G++ Yu*/#include<stdio.h>#include<algorithm>using namespace std;#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 | 1const int MAXN = 200020;int Max[MAXN << 2];int n, m;void P 阅读全文
posted @ 2012-08-07 16:05
找回失去的
阅读(122)
评论(0)
推荐(0)
摘要:
线段树的基础题,之前写过,今天看了刘汝佳的《高级数据结构》又写了一次,对线段树的理解也更深了。/*2012-08-07 15:45:14 Accepted 1166 343MS 736K 1598 B G++ Yu*/#include<stdio.h>#include<string.h>#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 | 1const int MAXN = 50050;int sum[MAXN << 2];int n;void PushUp(int rt 阅读全文
posted @ 2012-08-07 15:48
找回失去的
阅读(182)
评论(0)
推荐(0)
摘要:
星星的级别就是横坐标小于它,纵坐标不大于它的点个数。因为输入是有序的,纵坐标没有起到作用,所以只要注意x值就行了。用树状数组来实现/*Accepted 376K 110MS C++ 774B 2012-08-07 10:58:07*/#include<stdio.h>#include<string.h>#include<stdlib.h>const int MAXN = 1 << 15;int T[MAXN], ans[MAXN];int lowb(int t){ return t & (-t);}void insert(int i){ 阅读全文
posted @ 2012-08-07 12:00
找回失去的
阅读(205)
评论(0)
推荐(1)
摘要:
算是学了一个模版吧#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>const double eps = 1e-8;struct point{ double x, y;};point a, b, c, d;inline int dcmp(double d){ if(fabs(d) < eps) return 0; return d > 0 ? 1 : -1;}inline double det(double x1, double y1, doubl 阅读全文
posted @ 2012-08-07 10:01
找回失去的
阅读(251)
评论(0)
推荐(0)
浙公网安备 33010602011771号