hdu1541 Stars(树状数组)_Code92007的博客-程序员秘密

技术标签: 树状数组  二维  # 线段树/树状数组  思维题  顺序对  

题目

有n个点(xi,yi)

输入时保证按y升序,

即先按y小的输入,y相同时按x升序输入

如果对于(xi,yi)来说,

位于x<=yi&&y<=yi区域的点有ki个

则level[ki]++

最终输出level[0]到level[n-1]的值

思路来源

https://blog.csdn.net/ACMer_hades/article/details/46274927

题解

思路来源的题主忘了初始化C数组hhhh

其实乱序的话,按加粗题排序一下也能搞

然后既然是这样的输入,题目也给的那么明显

所以就相当于把二维降成一维的线性

这样就相当于统计在加入这个值之前有多少x值比它小

所以就变成了统计顺序对的裸题

BIT和线段树先统计区间和再插入一个点搞一搞就好了

心得

这题重点在于两处

①BIT是不能处理下标0的,

所以0<=x<=3W2要++x

②把二维降成一维统计之前的排序方法

struct node
{
	int x,y;
};
bool cmp(node a,node b)
{
	if(a.y!=b.y)return a.y<b.y;
	return a.x<b.x;
}

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath> 
using namespace std;
const int maxn=32000;
int C[maxn+5],level[maxn+5]; 
int n,x,y;
int sum(int i)
{
	int ans=0;
	for(;i;i-=i&(-i))
	ans+=C[i];
	return ans;
}
void add(int i,int v)
{
	for(;i<=maxn+1;i+=i&(-i))
	C[i]+=v;
}
int main()
{
	while(~scanf("%d",&n))
	{
		memset(C,0,sizeof(C));
		memset(level,0,sizeof(level));
		for(int i=0;i<n;++i)
		{
			scanf("%d%d",&x,&y);
			x++;//将x搞到1-32001 BIT下标不能为0
			level[sum(x)]++;
			add(x,1); 
		}
		for(int i=0;i<n;++i)
		printf("%d\n",level[i]);
	}
	return 0;
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/code92007/article/details/87921719

智能推荐

XML到底是干什么的_misc.xml是干什么的_明昊昊同学的博客-程序员秘密

定义XML本身是一种格式规范,是一种包含了数据以及数据说明的文本格式规范。抛砖比如,我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,...

数字图像处理课程作业1-大米检测_米粒图像预处理实验_ZHHHHHJ66的博客-程序员秘密

写在最前这是我大学课程的数字图像处理的实验报告,代码大部分是从网上直接复制使用,小部分是我自己改写的,可以直接运行。内容比较详细1.实验目的:综合利用滤波、分割、图像分割、特征描述等知识,实现大米实际尺度、整精米的检测2.实验要求:检测出图中的碎米,并在相应的米粒上打上标志。3.实验分析:①米粒与背景对比不明显,需要用一个阈值对其进行二值化②背景存在噪声需要对其进行去噪声③找到对应的米粒需要对其进行轮廓检测④找到其中的碎米需要对其进行面积阈值处理,找出面积小的碎米流程图如下

arcpy批量输出单个要素图片,排除相邻要素_鱼·肉·蛋的博客-程序员秘密

通过arcgis数据驱动页面可以输出要素类中每一个要素对应的图片,但是有部分需求如下:输出每一个要素图片,且图片上只能显示该要素,与其相邻或者相交的要素不可显示。通过arcpy代码实现如下:# coding=utf-8import arcpymxd = arcpy.mapping.MapDocument(r"F:\map.mxd")lyr = arcpy.mapping.ListL...

题解:最长回文子串(4种解法)_v-space的博客-程序员秘密

题目:最长回文子串难度:中等一、描述二、题解:2.1 暴力法(O(N^3))解释:循环三次。第一次起始点循环;第二次终止点循环(从最右边开始到起始点为止);第三次起始点开始终止点结束,当两个值不相等时候跳出循环。只有完整进行第三次循环才满足回文串的条件。class Solution: def longestPalindrome(self, s: str) -&gt; str: max_ = 1 max_str = s[0] length

mall学习所需知识点_macrozheng的博客-程序员秘密

由于mall项目涉及到很多知识点,比如SpringBoot、ElasticSearch、Redis、Mongodb等,本教程不会详细讲述这些,只会讲述本项目相关部分,所以...

Openwrt Image Builder/SDK 初探_weixin_30470857的博客-程序员秘密

image builder和SDK既可以从官网上下载,又可以自己进行编译(make menuconfig)。官网上下载的是预先帮你编译好的,这样可以大量节省自己编译源码花的时间,这两个东西相当于半成品,最后的东西还是要你自己生成的。开发流程如下:在编译时将image builder和sdk这两项勾上之后,它们就可以被编译出来的。当然也可以从官网下载,不过官网编译出来...

随便推点

哈工大校园网极路由设置-寝室校园网路由器拓展_哈工大有线网_后知后觉在加班的博客-程序员秘密

工具:网线,极路由路由器(或者其他品牌带有锐捷认证功能的路由器),电脑步骤(如果笔记本已经使用过校内网,请跳过此步骤)使用网线让电脑连接连接校园网,打开锐捷客户端(学校网信中心网站有相应软件下载),输入校内网开户账号密码,连接认证,认证成功表示电脑能上网了。 用电脑打开学校校园网自助服务网站校园网自助服务系统,并且登录上去 点击网络信息 找到“有线1x接入”,记住对应的用户mac地址(最好打开电脑记事本复制粘贴下来) 现在把网线接到极路由上,电脑能发现一个没有密码...

android动画帧率_Android性能测试帧率、卡顿详解及分析使用_许多的小兵器的博客-程序员秘密

卡顿分析FPS帧率统计评测应用流畅度并不准确系统获取FPS的原理:手机屏幕显示的内容是通过Android系统的SurfaceFlinger类,把当前系统里所有进程需要显示的信息合成一帧,然后提交到屏幕上显示,FPS就是1秒内SurfaceFlinger提交到屏幕的帧数,SurfaceFlinger目前的启动方式是做为init进程中的一个Service来启动。App停止操作后,FPS还是在一直变化,...

通过SeekBar制作可拖动进度条_qqazl001的博客-程序员秘密

此文,仅做为个人学习Android,记录成长以及方便复习!通过SeekBar制作类始于音乐播放的可拖动进度条首先是布局文件android:max=&quot;&quot; 设置进度条最大值android:progress=“” 设置当前进度activity_main.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&amp;lt;LinearLayout xmlns:andr...

1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version_Osborn521的博客-程序员秘密

春节回来提交代码报错 Github结果报错:error  1407742Efatal: unable to access 'https://github.com error:1407742E :ssl routines:ssl23_get_server_hello:tlsv1 alert protocol version1解决办法 下载最新的git    Git-2.16.2-64-bit.exe...

centos卸载python3_centos python3 的 卸载 删除_weixin_39918928的博客-程序员秘密

卸载/删除python 3.4看到网上说慎用 apt-get remove和 yum remove ,因此不敢用此类命令用卸载了(以后阿里云服务器快过期不用了的时候可以试一下,看看系统是否会崩,哈哈)Python3.4将要淘汰了,同时系统已安装python3.6,记录一下自己卸载Python3.4的方法查看所有的python路径:# whereis python运行以下命令删除python3.4相...

InfoSphere Warehouse 数据挖掘与 Cognos 集成架构概述(一)_数控小J的博客-程序员秘密

数据挖掘为从大量数据中提取出有用的信息提供先进的分析技术。本系列的文章谈到了将 InfoSphere Warehouse 数据挖掘与 IBM Cognos报告相结合的总体架构和商业机遇。这种集成使公司中的不同人员可以利用数据挖掘的结果。本系列的第 1 篇文章介绍基本的集成架构,并提供一个简短的技术案例研究,使您基本了解如何完成这种集成。

推荐文章

热门文章

相关标签