设为首页 加入收藏

TOP

POJ 2352 && HDU 1541 Stars (树状数组)
2015-07-20 17:49:33 来源: 作者: 【 】 浏览:1
Tags:POJ 2352 & HDU 1541 Stars

一开始想,总感觉是DP,可是最后什么都没想到。还暴力的交了一发。

然后开始写线段树,结果超时。感觉自己线段树的写法有问题。改天再写。先把树状数组的写法贴出来吧。

~~~~~~~~~~~~~~~~~~~~~~~~

树状数组不懂的去看刘汝佳的大白书,那个图画得很清楚。

题目大意:星星的坐标以y递增的顺序给出,这些点的左下方的点数代表这个点的级数,问0~N-1的级数有多少个?其实y根本木有用。

题目链接:http://poj.org/problem?id=2352

http://acm.hdu.edu.cn/showproblem.php?pid=1541

树状数组的思路在于:每一次询问,就相当于询问在1~x(包括x)间有多少个点。那么我们边读入,边更新就好。

#include
  
   
#include
   
     #include
    
      #define N 32000+10 using namespace std; int a[N],ans[N>>1]; int lowbit(int x) { return x&(-x); } int Sum(int x) { int tot=0; while(x>0) { tot+=a[x]; x-=lowbit(x); } return tot; } void update(int x,int v) { while(x<=N) { a[x]+=v; x+=lowbit(x); } } int main() { int n; while(scanf("%d",&n)!=EOF) { int x,y; memset(a,0,sizeof(a)); memset(ans,0,sizeof(ans)); for(int i=0;i
     
      





】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CodeForces 34C Page Numbers 下一篇HDU-4288-Coder(线段树)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)