技术标签: 树状数组 二维 # 线段树/树状数组 思维题 顺序对
有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;
}
定义XML本身是一种格式规范,是一种包含了数据以及数据说明的文本格式规范。抛砖比如,我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,...
写在最前这是我大学课程的数字图像处理的实验报告,代码大部分是从网上直接复制使用,小部分是我自己改写的,可以直接运行。内容比较详细1.实验目的:综合利用滤波、分割、图像分割、特征描述等知识,实现大米实际尺度、整精米的检测2.实验要求:检测出图中的碎米,并在相应的米粒上打上标志。3.实验分析:①米粒与背景对比不明显,需要用一个阈值对其进行二值化②背景存在噪声需要对其进行去噪声③找到对应的米粒需要对其进行轮廓检测④找到其中的碎米需要对其进行面积阈值处理,找出面积小的碎米流程图如下
通过arcgis数据驱动页面可以输出要素类中每一个要素对应的图片,但是有部分需求如下:输出每一个要素图片,且图片上只能显示该要素,与其相邻或者相交的要素不可显示。通过arcpy代码实现如下:# coding=utf-8import arcpymxd = arcpy.mapping.MapDocument(r"F:\map.mxd")lyr = arcpy.mapping.ListL...
题目:最长回文子串难度:中等一、描述二、题解:2.1 暴力法(O(N^3))解释:循环三次。第一次起始点循环;第二次终止点循环(从最右边开始到起始点为止);第三次起始点开始终止点结束,当两个值不相等时候跳出循环。只有完整进行第三次循环才满足回文串的条件。class Solution: def longestPalindrome(self, s: str) -> str: max_ = 1 max_str = s[0] length
由于mall项目涉及到很多知识点,比如SpringBoot、ElasticSearch、Redis、Mongodb等,本教程不会详细讲述这些,只会讲述本项目相关部分,所以...
image builder和SDK既可以从官网上下载,又可以自己进行编译(make menuconfig)。官网上下载的是预先帮你编译好的,这样可以大量节省自己编译源码花的时间,这两个东西相当于半成品,最后的东西还是要你自己生成的。开发流程如下:在编译时将image builder和sdk这两项勾上之后,它们就可以被编译出来的。当然也可以从官网下载,不过官网编译出来...
工具:网线,极路由路由器(或者其他品牌带有锐捷认证功能的路由器),电脑步骤(如果笔记本已经使用过校内网,请跳过此步骤)使用网线让电脑连接连接校园网,打开锐捷客户端(学校网信中心网站有相应软件下载),输入校内网开户账号密码,连接认证,认证成功表示电脑能上网了。 用电脑打开学校校园网自助服务网站校园网自助服务系统,并且登录上去 点击网络信息 找到“有线1x接入”,记住对应的用户mac地址(最好打开电脑记事本复制粘贴下来) 现在把网线接到极路由上,电脑能发现一个没有密码...
卡顿分析FPS帧率统计评测应用流畅度并不准确系统获取FPS的原理:手机屏幕显示的内容是通过Android系统的SurfaceFlinger类,把当前系统里所有进程需要显示的信息合成一帧,然后提交到屏幕上显示,FPS就是1秒内SurfaceFlinger提交到屏幕的帧数,SurfaceFlinger目前的启动方式是做为init进程中的一个Service来启动。App停止操作后,FPS还是在一直变化,...
此文,仅做为个人学习Android,记录成长以及方便复习!通过SeekBar制作类始于音乐播放的可拖动进度条首先是布局文件android:max="" 设置进度条最大值android:progress=“” 设置当前进度activity_main.xml&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:andr...
春节回来提交代码报错 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...
卸载/删除python 3.4看到网上说慎用 apt-get remove和 yum remove ,因此不敢用此类命令用卸载了(以后阿里云服务器快过期不用了的时候可以试一下,看看系统是否会崩,哈哈)Python3.4将要淘汰了,同时系统已安装python3.6,记录一下自己卸载Python3.4的方法查看所有的python路径:# whereis python运行以下命令删除python3.4相...
数据挖掘为从大量数据中提取出有用的信息提供先进的分析技术。本系列的文章谈到了将 InfoSphere Warehouse 数据挖掘与 IBM Cognos报告相结合的总体架构和商业机遇。这种集成使公司中的不同人员可以利用数据挖掘的结果。本系列的第 1 篇文章介绍基本的集成架构,并提供一个简短的技术案例研究,使您基本了解如何完成这种集成。