树状数组
拉风的啤酒肚
菜鸟一枚若发表的文章有所错误望各位大神提出意见
展开
-
POJ2155--Matrix(二维树状数组)
对于翻转,我们可以直接+1,取其结果%2即可。#include #include #include #include #include #include #include #include #include #define INF 999999999#define M 1005#define LL long long#define Min(a,b) a<b?a:b#d原创 2014-01-21 14:15:33 · 554 阅读 · 0 评论 -
POJ2029--Get Many Persimmon Trees(枚举+二维树状数组)
暴力枚举起点,然后就是裸的二维树状数组。#include #include #include #include #include #include #include #include #include #define INF 999999999#define M 105#define LL long long#define Min(a,b) a<b?a:b#defin原创 2014-01-21 15:25:06 · 910 阅读 · 0 评论 -
POJ1195--Mobile phones(树状数组)
二维树状数组,改下可直接套模版,注意点就是坐标中有0的情况,所以只要x和y都加上1即可。#include #include #include #include #include #define M 1500#define LL long longusing namespace std;int op,s;int c[M][M];int Lowbit(int x){ r原创 2014-01-16 20:24:24 · 742 阅读 · 0 评论 -
二维树状数组模版
int Lowbit(int x){ return x & (-x);}void Update(int x,int y,int d){ int i,j; for(i=x;i<=s;i+=Lowbit(i)) { for(j=y;j<=s;j+=Lowbit(j)) { c[i][j]+=d; } }}LL Sum(int x,int y){ int原创 2014-01-16 20:25:36 · 607 阅读 · 0 评论 -
树状数组
http://www.cppblog.com/Ylemzy/articles/98322.html这里面讲的应该是比较清楚了。转载 2014-01-16 14:14:03 · 456 阅读 · 0 评论 -
树状数组求逆序数
给你一组数据,让你求它的逆序数,我们可以先将这么数从小到大排序,然后一个一个插入到树状数组中去,c[i]表示第i个数前面有多少个数比它小,它的逆序就是i-Sum(a[i])。代码如下:#include #include #include #include #include #define M 500005#define LL long longusing namespace原创 2014-01-16 16:01:58 · 840 阅读 · 0 评论 -
POJ3067--Japan(树状数组)
题意就是让你求交点有多少个。我们可以先按a从小到大排序,a相等就按b从小到大排序,这样题意就变成了让我们求b数组的逆序数了。代码如下:#include #include #include #include #include #define M 1005#define LL long longusing namespace std;int n,m,k;int c[M]原创 2014-01-17 16:11:08 · 884 阅读 · 0 评论