HDU-1541 Stars 树状数组
题目链接:https://cn.vjudge.net/problem/HDU-1541
题意
天上有许多星星
现给天空一个平面坐标轴,统计每个星星的level,
level是指某一颗星星的左下角(x<=x0 && y<=y0)的星星总数
注意数据以yx排序输入
思路
怎么想也想不到如何查询
若用传统O(n^3)查询必然超时
于是想到记忆化搜索不断读写dp[y][x]即可,目测O(n^2)大一点
算了一下时间空间都不大可行,苦思冥想没有思路,看了别人的题解才晃然大雾用树状数组维护一个[0...XMAX]的区间即可
然而还是希望一个二维区间的查找算法
注意树状数组的区间是[1, MAX]不是[0, MAX-1]
同时注意本题xy取值包括0二维树状数组
还是很好写,只需在add()和sum()里再加入一个嵌套循环即可
不过这个题目用二维的话,光是空间上就不满足还是算了吧
代码
#include <cstdio>
#include <cstring>
#define lowbit(x) ((x)&(-x))
const int XMAX=32000;
int n, stars[XMAX+5];
int sum(int x){
int result=0;
for (int i=x; i>0; i-=lowbit(i))
result+=stars[i];
return result;
}
void add(int x){
for (int i=x; i<=XMAX+1; i+=lowbit(i))
stars[i]++;
}
int main(void){
while (scanf("%d", &n)==1){
int level[15000+5]={0};
memset(stars, 0, sizeof(stars));
for (int i=0, x, y; i<n; i++){
scanf("%d%d", &x, &y);
level[sum(x+1)]++;
add(x+1);
}
for (int i=0; i<n; i++) printf("%d\n", level[i]);
}
return 0;
}
Time | Memory | Length | Lang | Submitted |
---|---|---|---|---|
391ms | 508kB | 651 | G++ | 2018-02-22 17:11:49 |
HDU-1541 Stars 树状数组的更多相关文章
- POJ 2352 && HDU 1541 Stars (树状数组)
一開始想,总感觉是DP,但是最后什么都没想到.还暴力的交了一发. 然后開始写线段树,结果超时.感觉自己线段树的写法有问题.改天再写.先把树状数组的写法贴出来吧. ~~~~~~~~~~~~~~~~~~~ ...
- hdu 1541 (基本树状数组) Stars
题目http://acm.hdu.edu.cn/showproblem.php?pid=1541 n个星星的坐标,问在某个点左边(横坐标和纵坐标不大于该点)的点的个数有多少个,输出n行,每行有一个数字 ...
- HDU 1541 STAR(树状数组)
Stars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- Stars(树状数组)
http://acm.hdu.edu.cn/showproblem.php?pid=1541 Stars Time Limit: 2000/1000 MS (Java/Others) Memor ...
- hdu1541 Stars 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题目大意就是统计其左上位置的星星的个数 由于y已经按升序排列,因此只用按照x坐标生成一维树状数组 ...
- HDU 2838 (DP+树状数组维护带权排序)
Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...
- HDU 2689Sort it 树状数组 逆序对
Sort it Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- POJ-2352 Stars 树状数组
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39186 Accepted: 17027 Description A ...
- Stars(树状数组或线段树)
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37323 Accepted: 16278 Description A ...
- hdu 4046 Panda 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046 When I wrote down this letter, you may have been ...
随机推荐
- [JZOJ 5875] [NOIP2018提高组模拟9.20] 听我说,海蜗牛 解题报告(BFS+二分)
题目链接: http://172.16.0.132/senior/#main/show/5875 题目: 题解: 注意这题只能经过开放的港口 我们考虑用vector存下每个点不能到的点,并把并让vec ...
- Servlet学习(二)——ServletContext对象
1.什么是ServletContext对象 ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息,一个web应用只有一个S ...
- BAT 解密(四):配置中心、服务中心、异步技术细节
在系列文章的第二篇文章< BAT解密(二):聊聊业务如何驱动技术发展 >中我们深入分析了互联网业务发展的一个特点:复杂性越来越高.复杂性增加的典型现象就是系统越来越多,当系统的数量增加到一 ...
- Dropout 上
From <白话深度学习与TensorFlow> Dropout 顾名思义是“丢弃”,在一轮训练阶段丢弃一部分网络节点,比如可以在其中的某些层上临时关闭一些节点,让他们既不输入也不输出,这 ...
- .NET 拼音汉字转化(全面)
引言 这是一个.NET 用C#语言编写的 拼音转汉字类,考虑到有很多拼音转汉字,但是试用过发现大部分有很多生僻字都没有办法显示.在此分享一个支持绝大多数的较为全面的拼音汉字转化帮助类.不多说,代码附 ...
- pycharm日常填坑
pycharm坑很多,今天又遇见了,好吧 ,填坑 场景:从别的地方拷贝过来的项目,导入本地的pycharm 然后选择 然后 还会报错....心累 报错内容: django commands canno ...
- man 7 glob
GLOB(7) Linux Programmer's Manual GLOB(7) NAME glob - 形成路径名称 描述 (DESCRIPTION) 很久以前 在 UNIX V6 版 中 有一个 ...
- 紫书 例题 10-3 UVa 10375 (唯一分解定理)
这道题感觉非常的秀 因为结果会很大,所以就质因数分解分开来算 非常的巧妙! #include<cstdio> #include<vector> #include<cstr ...
- 面试题——ArrayList和LinkedList的区别
List概括 先回顾一下List在Collection的框架图: 从图中可以看出: List是一个接口,他继承Collection接口,代表有序的队列. AbstractList是一个抽象类, ,它继 ...
- 三 概要模式 3) MR计数器计数 。无 reduce 计数
计数器模式讲解: 先讲一下,就是说只用 Map 阶段 不需要 Reduce . 也就是说去掉了中间输出,而是Map 直接输出结果.大大提高了 MR 的效率且节省了 MR 中间输出读入 ...