树状数组
文章平均质量分 75
double1994
这个作者很懒,什么都没留下…
展开
-
Ural 1470. UFOs
三维树状数组,之前没有碰到过树状数组的问题,直接撞三维上的表示很蛋疼。拖了几天了,有点想不下去。然后看了下题解,发现自己略白痴。。。 #include #include #include #include #include using namespace std; #define INF 100000000; #define N 130 #define MIN(a,b) ((a)<(b)?(原创 2013-11-02 19:40:08 · 751 阅读 · 0 评论 -
POJ 3321 Apple Tree
树状数组按dfs序计算。邻接表存树。先深搜一遍整个树,low数组记录开始时间,high记录结束时间。low与high之间为子节点。计算出中间子节点的变化加上原有的数目即可。重点在于dfs来将树形结构映射到树状数组上。#include #include #include using namespace std; #define N 2000005 int n; int c[N]; int r[N];原创 2014-02-20 21:11:30 · 483 阅读 · 0 评论 -
POJ 2481 Cows
树状数组。将E按升序排,S降序。从后往前忘树状数组中插入当前S坐标。因为前面的E必然比当前E大,后面必然小,只要统计前面有多少S比当前大即可。注意S和E相同时数目直接赋过来即可。 #include #include #include #include #include using namespace std; #define N 100005 int c[N]; int ans[N];原创 2014-02-21 09:32:26 · 394 阅读 · 0 评论 -
POJ 2155 Matrix
二维树状数组。每个矩阵翻转后令从四个角为左上角到[n,n]为右下角矩阵+1或-1。以记录翻转次数。所有与要查询点有关的翻转都在当前点为右下角的矩阵中。求和模2即可求出结果。 #include #include #include using namespace std; #define N 1005 int n; int c[N][N]; int lowbit(int x)原创 2014-02-19 21:50:19 · 458 阅读 · 0 评论 -
POJ 3167 Cow Patterns
kmp + 树状数组。树状数组动态更新排名。明白了方法以后,细节方面调了半天。。。想吐了。。。逗b的地方也不想改了。注意代码中注释的地方。 真的要想清楚再写,不然很浪费时间。 #include #include #include #include #include #include using namespace std; typedef long long LL; #define原创 2014-03-29 16:51:28 · 467 阅读 · 0 评论