2016春季训练——树状数组
2016-03-07 20:14
274 查看
来源:HDU1556
树状数组的使用,以前写过一个类似的,但是并没有练得很熟,所以今天再重新找一个题目练一下
代码:
树状数组的使用,以前写过一个类似的,但是并没有练得很熟,所以今天再重新找一个题目练一下
代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAXN=100010; long long c[MAXN]; int n,t; long long lowbit(int n){ return n&(-n); } void update(int i,int d){ while(i<=n){ c[i]+=d; i=i+lowbit(i); } } long long query(int n){ long long ans=0; while(n>0){ ans+=c ; n-=lowbit(n); } return ans; } int main(){ int a,b; while(scanf("%d",&n)!=EOF){ if(n==0)break; memset(c,0,sizeof(c)); int i=0; while(i++<n){ cin>>a>>b; if(a>b){t=a;a=b;b=t;} update(a,1);//这方法好,一开始使用a到b来进行遍历,但是后来发现这是需要维护a,b之外的数据的,这个方法非常好 update(b+1,-1); } for(i=1;i<n;i++) cout<<query(i)<<" "; cout<<query(n)<<endl; } return 0; }
相关文章推荐
- SEO优化之——常用工具总结
- Exynos4412 内核移植(二)—— 内核编译过程分析
- <LeetCode OJ> 73. Set Matrix Zeroes
- 同步、异步、阻塞、非阻塞
- C#迭代重载等
- web安全:click jacking
- 辞职申请
- 【HDU-1058】Humble Numbers 丑数
- LeetCode 54 - Spiral Matrix
- Adjacent Node Sum (图的邻接表表示 C语言)
- Edittext ---Android
- 随机森林(Random Foreast)
- web安全:xss && csrf
- Leetcode 119 Pascal's Triangle II 数论递推
- 分布式 session
- 51nod p1201 整数划分
- 黏性tableView 下拉变长 毛玻璃效果渐变
- 51nod p1201 整数划分
- 免费试用阿里云空间和邮箱服务
- LeetCode : Merge Two Sorted Lists [java]