HDU1541 经典树状数组
题意:
如图,等级为0的点有1,等级为1得点有4,2 等级为2的点有3,等级为3的点有5-------即即左下角的点的个数
现给你一些点(x,y),输入顺序按y升序,y相等时按x升序排列
请分别输出等级0---n-1的点的个数
分析:
暴力超时TEL,用g++提交也超时
#include<iostream>
#include<cstring>
#include<cstdio>
#include "cstring"
using namespace std;
int a[];
int c[];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int x,cnt=;
memset(c,,sizeof(c));
for(int i=;i<n;i++)
{
scanf("%d%d",&a[i],&x);
for(int j=;j<i;j++)
if(a[j]<=a[i])
cnt++;///属于哪个水平?
c[cnt]++;
cnt=;
}
for(int i=;i<n;i++)
{
printf("%d\n",c[i]);
}
}
return ;
}
再分析
只统计之前小于等于x的点的个数,即可确定等级
统计个数,需用到求和,用树状数组
#include "cstdio"
#include "cstring"
#include "iostream"
using namespace std;
int c[+];///下标代表x值,值代表个数
int a[+];///下标代等级,值代表个数
int lowbit(int x)
{
return x&(-x);
}
void update(int i,int plus)
{
while(i<=)
{
c[i]+=plus;
i+=lowbit(i);
}
}
int getSum(int x)
{
int s=;
while(x>)
{
s+=c[x];
x-=lowbit(x);
}
return s;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)///确定一个等级,统计小于x的个数
{
int x,y;
memset(a,,sizeof(a));
memset(c,,sizeof(c));
for(int i=;i<n;i++)
{
scanf("%d%d",&x,&y);
a[getSum(x+)]++;///等级确定=统计c(1->x)个数
update(x+,);///c 对应x +1
}
for(int i=;i<n;i++)
{
printf("%d\n",a[i]);
}
}
return ;
}
HDU1541 经典树状数组的更多相关文章
- POJ 3067 Japan(经典树状数组)
基础一维树状数组 题意:左边一排 1-n 的城市,右边一排 1-m 的城市,都从上到下依次对应.接着给你一些城市对,表示城市这两个城市相连,最后问你一共有多少个交叉,其中处于城市处的交叉不算并且每个 ...
- HDU-1541 Stars 树状数组
题目链接:https://cn.vjudge.net/problem/HDU-1541 题意 天上有许多星星 现给天空一个平面坐标轴,统计每个星星的level, level是指某一颗星星的左下角(x& ...
- hdu1541 Stars 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题目大意就是统计其左上位置的星星的个数 由于y已经按升序排列,因此只用按照x坐标生成一维树状数组 ...
- hdu 1541/poj 2352:Stars(树状数组,经典题)
Stars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- POJ 2155 Matrix 【二维树状数组】(二维单点查询经典题)
<题目链接> 题目大意: 给出一个初始值全为0的矩阵,对其进行两个操作. 1.给出一个子矩阵的左上角和右上角坐标,这两个坐标所代表的矩阵内0变成1,1变成0. 2.查询某个坐标的点的值. ...
- HDU1541 树状数组
Stars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Ping pong(树状数组经典)
Ping pong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 树状数组入门 hdu1541 Stars
树状数组 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构.主要用于查询任意两位之间的所有元素之和,但是每次 ...
- POJ 2352 stars (树状数组入门经典!!!)
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 54352 Accepted: 23386 Descripti ...
随机推荐
- tcl之控制流-条件运算、条件测试、逻辑表达
- 在CentOS VPS上通过SSH安装 MySQL
输入 yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入s ...
- css 菱形写法
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- iOS-重构微博cell模型
一.Frame模型: -------------------WeiboFrame.h-------------------------------------------------- ------- ...
- 裸机——RTC
1. 首先晓得RTC的基本知识 RTC被划分到timer,但RTC是面向时间点的. 如果按照定时器的思路去思考,那么应该考虑 时间周期 和 计数值. RTC 不是面向时间点的,所以略有不同, 时间周期 ...
- dialog BLE SDK 学习(3)
dialog DA14580 SDK版本:5.0.4. 本文介绍了DA14580 SDK的学习感想和建议,分享给大家. 首先,Dialog官网上的资料挺全的,但是是英文的,如果英文不好,比如笔者,阅读 ...
- Android保持屏幕常亮唤醒状态
第一步: 首先添加权限: <uses-permission android:name="android.permission.WAKE_LOCK"></uses ...
- sublime text基本配置备份
sublime text基本配置备份: // Settings in here override those in "Default/Preferences.sublime-settings ...
- SDK支付流程
1.普通支付流程 2.代理流程 易接.U8SDK
- java IO小结
package 字符与字节转换; import java.io.*; public class char_byte { public static void main(String[] args) { ...