题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541

思路:要求求出不同等级的星星的个数,开始怎么也想不到用树状数组,看完某些大神的博客之后才用树状数组写的,搞了好久才懂得数组的更新过程

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<math.h>
  5. #include<string.h>
  6. #include<vector>
  7. #include<queue>
  8. #include<iterator>
  9. #include<vector>
  10. #include<set>
  11. #define dinf 0x3f3f3f3f
  12. typedef long long ll;
  13. const int Max=(<<)+;
  14. using namespace std;
  15.  
  16. #define SIZE 1000005
  17.  
  18. int c[SIZE],level[SIZE],n;
  19.  
  20. int Lowbit(int x)
  21. {
  22. return x&(-x);
  23. }
  24.  
  25. int Sum(int x)
  26. {
  27. int sum=;
  28. while(x>)
  29. {
  30. sum+=c[x];
  31. x-=Lowbit(x);
  32. }
  33. return sum;
  34. }
  35.  
  36. void Update(int i,int x)
  37. {
  38. while(i<=SIZE)//要把所有的与i相关的c数组中的值全部更新,不然会出错
  39. {
  40. c[i]+=x;
  41. i+=Lowbit(i);
  42. }
  43. }
  44.  
  45. int main()
  46. {
  47. while(~scanf("%d",&n))
  48. {
  49. memset(level,,sizeof(level));
  50. memset(c,,sizeof(c));
  51. int x,y;
  52. for(int i=;i<n;i++)
  53. {
  54. scanf("%d %d",&x,&y);
  55. level[Sum(++x)]++;
  56. Update(x,);
  57. /*
  58. for(int j=0;j<10;j++)
  59. printf("%d ",c[j]);
  60. printf("\n");
  61. for(int j=0;j<10;j++)
  62. printf("%d ",level[j]);
  63. printf("\n");
  64. */
  65. }
  66. for(int i=;i<n;i++)
  67. printf("%d\n",level[i]);
  68. }
  69. return ;
  70. }

附上样例中数组的更新过程,上面一行是c[i],下面是level[i]

hdu 1541 Stars的更多相关文章

  1. POJ 2352 &amp;&amp; HDU 1541 Stars (树状数组)

    一開始想,总感觉是DP,但是最后什么都没想到.还暴力的交了一发. 然后開始写线段树,结果超时.感觉自己线段树的写法有问题.改天再写.先把树状数组的写法贴出来吧. ~~~~~~~~~~~~~~~~~~~ ...

  2. HDU - 1541 Stars 【树状数组】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1541 题意 求每个等级的星星有多少个 当前这个星星的左下角 有多少个 星星 它的等级就是多少 和它同一 ...

  3. hdu 1541 Stars 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题目意思:有 N 颗星星,每颗星星都有各自的等级.给出每颗星星的坐标(x, y),它的等级由所有 ...

  4. POJ 2352 Stars(HDU 1541 Stars)

    Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41521   Accepted: 18100 Descripti ...

  5. HDU 1541 Stars (树状数组)

    Problem Description Astronomers often examine star maps where stars are represented by points on a p ...

  6. HDU 1541 Stars (线段树)

     Problem Description Astronomers often examine star maps where stars are represented by points on ...

  7. 题解报告:hdu 1541 Stars(经典BIT)

    Problem Description Astronomers often examine star maps where stars are represented by points on a p ...

  8. hdu 1541 Stars 统计<=x的数有几个

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  9. hdu 1541 Stars(线段树单点更新,区间查询)

    题意:求坐标0到x间的点的个数 思路:线段树,主要是转化,根据题意的输入顺序,保证了等级的升序,可以直接求出和即当前等级的点的个数,然后在把这个点加入即可. 注意:线段树下标从1开始,所以把所有的x加 ...

随机推荐

  1. 通过NavMeshObstacle解决NavMesh防卡

    http://www.unity蛮牛.com/thread-33383-1-1.html. 许久未曾发帖了,最近忙于换工作的问题,经常处于纠结状态,so...偶尔上蛮牛还能看到大家对我的支持,感觉还是 ...

  2. Unity手游之路<七>角色控制器

    Unity手游之路<七>角色控制器 我们要控制角色的移动,可以全部细节都由自己来实现.控制角色模型的移动,同时移动摄影机,改变视角.当然Unity也提供了一些组件,可以让我们做更少的工作, ...

  3. ThinkPHP函数详解:F方法(快速缓存方法)

    在Think中S方法的用法,F方法其实是S方法的一个子集功能, 仅用于简直数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用 的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓 ...

  4. SQL Server 2008 R2安装图解教程

    一.下载SQL Server 2008 R2安装文件 cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso 二.将安装文件刻录成光盘 ...

  5. ubuntu 16.04 挂起后WiFi链接不上

    在笔记本上安装ubuntu 16.04后,使用挂起系统功能后发现WIFI链接不上去,然后使用以下指令多WIFI服务进行重启,发觉可以了. sudo service network-manager re ...

  6. centos 谷歌浏览器安装

    首先,这个是坑 http://www.tecmint.com/install-google-chrome-on-redhat-centos-fedora-linux/ 安装会报错,按照错误找到以下资源 ...

  7. Ext 下拉列表模糊搜索

    /** * Created by huangbaidong on 2016/9/18. * 楼盘通用Combo组件,支持模糊查询 * 使用案例: * { fieldLabel : '楼盘名称', xt ...

  8. c# Dictionary的遍历和排序

    c# Dictionary的遍历和排序 c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 ...

  9. 用Javascript主动更行URL

    参考---ttp://www.oschina.net/translate/manipulating-url-using-javascript-without-freshing-the-page var ...

  10. perl文件句柄的传递

    perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,&quo ...