
树状数组
smallacmer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
http://acm.hdu.edu.cn/showproblem.php?pid=1541
在网上搜了一下说是树状树状模板题。。于是果断看了,,但坑爹的英语,,读不懂题意。。。于是用了有道才读懂,题意是让求每个星星的水平,就是每个星星左下方有多少个元素包括自己,有多少就处于第几水平,这一题由于输入时纵坐标是按照升序排列故只考虑横坐标。。就行。。 #include #include #define N 32005 int s[N]; int lev[N]; using namespace原创 2012-02-27 19:51:20 · 1064 阅读 · 0 评论 -
Flowers&&树状数组+离散化
题意:给你一些花,以及这些花开花的时间,问你在某一时间开花的总个数~~,很明显的树状数组题,插线问点。。 AC代码: #include #include #include #include #include #define N 1000005 using namespace std; typedef struct node { int num; int id; }Node; bool c原创 2012-08-03 09:24:41 · 633 阅读 · 0 评论 -
http://acm.nyist.net/JudgeOnline/problem.php?pid=117&&树状数组求逆序数+离散化
这一题一开始是胸有成竹的,本想1A的,但是接二连三的wa了好几次。。。把我满满的自信心消磨殆尽了。。我一遍一遍的寻找错误,就是找不到。。最后实在没办法要了后台的数据。。运行一看。令我大跌眼眶。。。。竟然都对了,,但为什么WA呢?可能是这一题判题写错了?,最后在不抱希望的情况下我把%I64d改成了%lld,竟然AC了,苦逼的孩子。。oj竟然不支持%I64d..... AC代码: #inclu原创 2012-03-02 14:49:45 · 634 阅读 · 0 评论 -
2010 ACM-ICPC Multi-University Training Contest(2)——Host by BUPT
依然是树状数组+离散化+dp http://acm.hdu.edu.cn/showproblem.php?pid=3450 AC #include #include #include #include #define N 100005 #define M 9901 using namespace std; typedef long long L; int kp[N]原创 2012-03-01 21:54:03 · 824 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2492&&求长度为3的顺序序列有多少个
经过几天的奋战,终于把自己找的树状数组题刷完了,小happy一下。。 题意找出乒乓球裁判,要求比参赛的两个人中一个排名高,一个排名低,问一共可以找到多少个。。如果找到一个就可以举办这样一场比赛,问一共可以举行多少场比赛。。 AC代码: #include #include #include #include #define N 100005 using namespace std; typ原创 2012-03-02 09:51:29 · 625 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2838&&逆序数的应用
这算是一道比较综合的树状数组题。。 题意:一个农场主养了很多奶牛,每天晚上该农场主都要为奶牛,但是每个奶牛都有一个脾气,这可能会导致奶牛损坏农场主喂牛的工具。。每个奶牛的脾气不等,这样农场主可以调换的某两个牛的位置,以求奶牛破坏最少的工具。已知挪动两个奶牛花费的时间为两个奶牛脾气的和。。让你求出最少的时间在破坏最少工具的前提下。。 思路:树状数组中有两个元素一个是记录比当前a小的个数,一个是记原创 2012-02-29 21:53:11 · 1133 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2688&&树状数组求正序数
#include #include #include #include #define N 10001 #define M 3000001 using namespace std; int kp[M]; int s[N]; int n; int lowbit(int x) {return x&(-x);} void update(int x) { while(x<N) { s[x]+原创 2012-03-01 21:12:36 · 1195 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1394
树状数组求逆序数的应用。。这一题设计的非常巧妙。。。下面说一下题意。。给定一组数,然后依次的挪动该组数的元素共得到n种序列。求这n中序列中逆序数最少的个数。。。杯具的是我竟然把树状数组和一般的数组弄混淆了。。这里要特别注意。。。不过值得一提的是竟然rank1,(*^__^*) 嘻嘻…… AC代码: #include #include #include #include #define N原创 2012-03-01 09:26:18 · 1062 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2689
树状数组求逆序数应用,,不解释。。 #include #include #include #include #define M 1000000001 using namespace std; typedef long long L; int s[M]; int lowbit(int x) { return x&(-x);} void update(int x) { while(x<=M)原创 2012-02-29 20:56:32 · 609 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3584
三维树状数组的一个模板题。。应该是属于插线问点这一类型的。。。 题意:一开始三维数组的元素都为0,当输入操作为1时把1->0或者0->1..问经过许多次操作后该位置是1还是0,。 #include #include #include #include #include #define N 101 using namespace std; int s[N][N][N]; int lowbit(i原创 2012-02-29 20:25:28 · 659 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2227&&树状数组+离散化+dp
http://acm.hdu.edu.cn/showproblem.php?pid=2227 #include #include #include #include #define N 100005 #define M 1000000007 using namespace std; typedef long long L; int kp[N]; int a[N]; int s[N]; in原创 2012-03-01 20:34:30 · 1031 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2642&&二维树状数组
通过这两天对树状数组的学习,感觉树状数组非常强大,在统计记数中效率很高。不仅可以统计一维的还可以统计二维的,甚至三维的。。。。树状数组能解决的题一般有。统计数组中有多少元素。。统计有多少比给定数大的元素,,,统计在一个矩形区域内有多少元素。。。 这一题的题意是:可以把星星看做灯泡,给个一些灯泡的位置坐标,在一个矩形区域内让你统计;有多少亮着的灯泡,,。。。 思路:初始化一开始的灯泡都不亮。。当原创 2012-02-28 09:46:46 · 607 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1892&&二维树状数组
二维树状数组,,,,今天长见识了。。。 这一题题意:对一个矩形框的书进行,插入,挪动,删除。。。。 #include #include #include #include using namespace std; #define N 1005 int s[N][N]; int lowbit(int x) {return x&(-x);} void update(int x,int y,原创 2012-02-27 21:55:28 · 652 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1166
树状数组的入门题。。s[N]表示当前下标控制的所有元素的和。。。 对于p-lowbit(p)都不被p包含。。 而对于p+lowbit(p) 都包含p。。。。。 #include #include #include #include #define N 50005 using namespace std; int s[N]; int lowbit(int x) {return x&(-x);}原创 2012-02-27 13:37:40 · 511 阅读 · 0 评论 -
树状数组&&http://acm.hdu.edu.cn/showproblem.php?pid=1556
插线问点。。。 #include #include #include #include #define N 100005 using namespace std; int s[N]; int lowbit(int x) {return x&(-x);} void update(int x,int a) { while(x<N) { s[x]+=a; x+=lowbit(x)原创 2012-02-26 21:44:24 · 1008 阅读 · 0 评论 -
Super Mario&&2012 ACM/ICPC Asia Regional Hangzhou Online
这道题和树状数组求逆序数体很像,但是比赛的时候就是建立不好解题模型,比赛时好多人说需要离散化,看完别人的解题报告后才发现此题处理的便不是以前处理的值,这一题处理的是下标,用的是树状数组的离线算法,这题给我的感觉就是 自己的数状数组跟没学一个样,今后需要多多努力。 思路:分别对原始数组和要处理的值按从小到大排序,然后定义两个指针扫描排过序的数组,写两个条件判断,什么时候向树状数组插入,什么时候查询原创 2012-09-24 10:32:25 · 896 阅读 · 0 评论