题目:http://poj.org/problem?id=2352 题意:平面上有n个星星,每个星星的等级是比该星星的X和Y坐标都小的星星的个数,给出每个星星的坐标(按y轴升序),输出等级0~n-1每个等级的星星个数。 思路:线段树,因为y轴升序给出,我们只考虑x轴就可以, 每次查询只需要查询0~x区间的个数即可。#include <stdio.h> #include <string.h> const int maxn=32000; struct SegMentTree { int l, r, sum; }st[maxn<<2]; int lvl[maxn+10]; int n, x, y; void BuildTree(int left, int right, int v) { st[v].l=left, st[v].r=right; if (left==right) { st[v].sum=0; return; } int lc=v<<1; int rc=lc+1; int mid=(left+right)>>1; BuildTree(left, mid, lc); BuildTree(mid+1, right, rc); st[v].sum=st[lc].sum+st[rc].sum; } void Insert(int left, int right, int v) { if (st[v].l==left&&st[v].r==right) { st[v].sum++; return; } int lc=v<<1; int rc=lc+1; int mid=(st[v].l+st[v].r)>>1; if (mid>=right) Insert(left, right, lc); else if (left>mid) Insert(left, right, rc); else { Insert(left, mid, lc); Insert(mid+1, right, rc); } st[v].sum=st[lc].sum+st[rc].sum; } int Query(int left, int right, int v) { if (st[v].l==left&&st[v].r==right) return st[v].sum; int lc=v<<1; int rc=lc+1; int mid=(st[v].l+st[v].r)>>1; if (mid>=right) return Query(left, right, lc); else if (left>mid) return Query(left, right, rc); else return Query(left, mid, lc)+Query(mid+1, right, rc); } int main() { //freopen("in.txt", "r", stdin); while (scanf("%d", &n)==1) { memset(lvl, 0, sizeof(lvl)); BuildTree(0, maxn, 1); for (int i=0; i<n; i++) { scanf("%d %d", &x, &y); lvl[Query(0, x, 1)]++; Insert(x, x, 1); } for (int i=0; i<n; i++) printf("%d\n", lvl[i]); } }
相关推荐
【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】
本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。
pku2352——Stars(经典树状数组的应用)
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月25日, 上午11:05 */#include #includeusing namespace std;#define N 32005int in[N], a[N];int n = N;int Lowbit(int x)//x转化为二进制时末尾0的
对比实验系列:Efficientdet环境配置及训练个人数据集
可以通过下方链接下载Efficientdet源码。
树状数组(详细讲解)
在这里,要介绍另一种做法——树状数组
CST新手必看:共面波导色散曲线绘制全流程(附参数设置避坑指南)
本文详细介绍了CST Microwave Studio中绘制共面波导色散曲线的全流程操作,特别针对新手常见的边界条件设置错误、参数扫描失效等问题提供解决方案。通过模型建立、边界条件设置、本征模求解器配置等步骤,帮助工程师快速掌握CPW色散特性分析方法,并附有参数设置避坑指南,提升高频电路设计效率。
【YOLOv11工业级实战】22. YOLOv11动态蛇形卷积破解弯曲裂纹检测难题(附2小时部署代码)
摘要:本文聚焦工业场景中弯曲裂纹检测的核心痛点,针对风电叶片、织物纱线等曲线缺陷传统检测漏检率高的问题,提出基于动态蛇形卷积(DSC)的YOLOv11优化方案。因企业数据保密,采用AITEX织物缺陷库(含曲线纱线断裂标签)结合Blender物理仿真生成2000张弯曲裂纹数据,实现从数据准备到部署的全流程实操。通过将DSC模块插入YOLOv11 Neck层,弯曲裂纹召回率从68.1%提升至89.4%,mAP@0.5达83.7%,推理速度3.1ms(2080Ti)。
【树状数组】Stars
C - Stars Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that a
AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)
AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)
pku 2352 stars
#include iostream>#define C 32001using namespace std;int B[C]={0};int A[C]={0};inline int lowBit(int t) { return t & (-t);}void change(int n, int m) { while(n C) { B[n] += m; n
Anomalib库安装以及使用
Anomalib是一个专注于异常检测的深度学习库。它的目标是收集最新的异常检测算法,并提供用于在公共和私有数据集上进行基准测试的工具。该库提供了一系列已实现的异常检测算法,这些算法在最近的文献中有所描述。此外,Anomalib还提供了一套工具,方便开发人员开发和实现自定义模型。该库特别注重基于图像的异常检测,旨在识别数据集中的异常图像或图像中的异常像素区域。通过使用Anomalib,用户可以快速构建和评估各种异常检测算法,以满足其特定需求。
【STM32 CubeMX】I2C中断方式与DMA方式
在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可以采用中断方式或DMA(Direct Memory Access)方式。中断方式通过触发中断来处理数据传输,而DMA方式则利用直接内存访问技术来实现数据传输,减轻了CPU的负担。在选择I2C通信方式时,开发者需要根据具体的应用需求和性能要求来选择合适的方式。STM32 CubeMX提供了图形化配置工具,使得配置I2C通信方式变得更加便捷。
PKU2352
题目链接:http://poj.org/problem?id=2352 分析:假如把数据进行排序之后遍历,则时间复杂度会很高,多达O(n),因为可以抽象为区间求和问题,所以可以使用线段树来解决问题,初始化的时间复杂度为nlog(n),查询时间为O(1)。 思路:因为是在左下方,所以可以先按x排序,若x相同,则y小的在后面的方式排序,需注意下标应从1开始。 代码如下: #include&l...
最新Python爬虫实战(入门爬虫篇)——案例15:微博热搜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)
本次案例通过 Python 爬虫技术,成功实现了对微博热搜 API 接口数据的批量爬取与 Excel 保存。代码采用模块化设计,包含接口请求、JSON 解析、数据提取、Excel 持久化等完整流程;通过模拟真实浏览器的请求头和 cookies,有效规避基础反爬策略,保证请求的稳定性。整个爬虫逻辑遵循“API请求 → JSON解析 → 数据提取 → 保存到Excel”的标准流程,与异步加载类网站的爬取范式高度一致。AJAX 接口抓包与分析。
PKU2352 Stars - 树状数组
题目描述:按照y坐标升序,x坐标升序输入N个星星的坐标。若左下角有k个星星,定义星星的级别为k。输出级别为0~N-1的星星分别有多少。分析:输入顺序已排好序,那么只要依次统计星星i之前x坐标小于等于i.x的星星有多少,即是星星i的级别。这样也就成了树状数组的模型。编码很简单,y坐标没用。注意,x可能为0,处理时要将所有的x+1。(用树状数组的时候一定要注意这一点)还有就是x的范
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
PKU 2481 Cows & PKU 2352 Stars & HDU 1541 Stars
题目链接地址: PKU 2481:http://poj.org/problem?id=2481 PKU 2352:http://poj.org/problem?id=2352 HDU 1541:http://acm.hdu.edu.cn/showproblem.php?pid=1541 其中PKU 2352和HDU 1541是一样的。 = =、、买一送一。。 ***********
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
pku2352 Stars(线段树实现)
第一个线段树。。。线段树真是灵活多变啊。。。看来要好好掌握还要多加练习。。/*pku2352 Name: Stars Date: 02-08-08 16:41 Description: 统计问题,线段树 */#include#define MAX 72010#define pr printf// FILE * pp=fopen("temp.txt
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
pku2352: Stars
pku2352: http://poj.org/problem?id=2352题意:给出星星的坐标,问每一层次n有多少个星星:星星a的左边或下边共有x个星星,则a属于层次x,ans[x]++,求ans[0]~ans[n-1]解法1:线段树:从给出的坐标的顺序可知后面的坐标不会影响的前面的坐标,所以可以边输入边计算。首先建树,再从点1开始往下搜,若所求点d在树的左子树,继续往下搜,若在树的右子树...
PKU2352 stars
这道题以前用treap写过,今天试了试树状数组,发现真是短时高效。上面的是以前的平衡树,下面是今天的树状数组。时间效率基本是两倍不说,编程复杂度那也是不言而喻的。当然了,这多亏了坐标都是整数。貌似这道题用线段树和归并排序也能解决一下,但我相信效率应该不是像树状数组这么理想吧!program stars; const nn=33000; var c,ans:array[0..nn] of longint; n,i,x,y:longint; function l
详解Pku2352 数星星Stars以及star加强版
天文学家经常要检查星星的地图,每个星星用平面上的一 个点来表示,每个星星都有坐标。我们定义一个星星的“ 级别”为给定的星星中不高于它并且不在它右边的星星的数 目。天文学家想知道每个星星的“级别”。 例如上图,5号星的“级别”是3(1,2,4这三个星星),2号星和4号星的“级别”为1。 给你一个地图,你的任务是算出每个星星的“级别”。 Input 第一行给出数字N,代表有N个数字 第二行给出N个数字,权值为正且小于等于1e9 N
pku2352 Stars 线段树
http://poj.org/problem?id=23521.没有注意读题 已经给好y的顺序排列,不用自己再sort了2.在使用qsort(a+1,num,sizeof(a[1]),cmp)要注意sizeof(a[1]) 还有cmp 要将const void*a 转换成 结构体先 再比较A.x B.x;3.一直TE;最后发现要读入x后要x++,这样子计算会比较快,就不用算最开始的x了,因为...
Pku2352 Stars 树状数组
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22795 Accepted: 9933 Description Astronomers often examine star maps where stars are represented by poi
树状数组 -- PKU 2352 Stars
Stars Time Limit: 1000MS Memory Limit: 65536K
pku 2352 Stars(线段树)
输入居然都帮忙排好序了,把最关键的一步给做了。线段树,这里我没给节点left,right域,而是在函数递归的时候直接传过去。#include using namespace std;const int maxn=32005;int tree[maxn*8],ans[15000];int Search(int i,int x,int left=0,int right=maxn
966



被折叠的 条评论
为什么被折叠?



