
线段树 树状数组
文章平均质量分 78
maiyuetong
这个作者很懒,什么都没留下…
展开
-
hdu 1166 树状数组 & 线段树
//树状数组#include "stdafx.h"#include using namespace std;const int MAXN = 50010;int num[MAXN];int sum[MAXN];//sum[i]: lowbit为i的二进制表示中右边第原创 2011-07-31 11:24:27 · 552 阅读 · 0 评论 -
poj 2299 逆序数
poj 2299 求逆序数逆序数的定义:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,3原创 2011-08-04 22:06:49 · 2226 阅读 · 0 评论 -
poj 2352 树状数组
// poj 2352 树状数组.cpp : 定义控制台应用程序的入口点。////题目要求每个星星左下方的星星个数,输入时星星坐标已经按照y轴升序排,并且y轴一样时按x轴升序排//所以可以用x轴坐标建立一维的树状数组,此时相当于求它前面小于它的坐标的个数。//需要注意的是原创 2011-08-05 11:09:58 · 543 阅读 · 0 评论 -
Poj 1195 二维树状数组
// poj 1195 二维树状数组.cpp : 定义控制台应用程序的入口点。//节点更新,区间求和。 #include "stdafx.h"#include using namespace std;const int MAXN = 1030;__int64 su原创 2011-08-06 21:08:26 · 400 阅读 · 0 评论 -
poj 3067 树状数组
// poj 3067树状数组.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;const int MAXN = 1010;int sum[MAXN];原创 2011-08-06 23:01:53 · 570 阅读 · 0 评论 -
poj 2481 树状数组
// poj 2481 树状数组.cpp : 定义控制台应用程序的入口点。//题目要得到满足Si = Ej and Ei-Si > Ej-Sj (Si!=Sj && Ei!=Ej) 的个数//解法1:若按Ei值升序排序后,则相当于求每个位置i左边小于等于S[i]的个数.解原创 2011-08-06 21:27:04 · 419 阅读 · 0 评论 -
树状数组应用
一维树状数组常用的3个函数int lowbit(int x) //取x的最低位1,比如4,则返回4,如5,则返回1{ return x&(-x);}void update(int i, int val) //将第i个元素增加val{ //i的祖先都要增加val while(i <= n) { sum[i] += val; i += lowbit(i); //将i原创 2011-08-04 23:36:46 · 3043 阅读 · 0 评论