城市地平线

2024-06-15 04:32
文章标签 城市 地平线

本文主要是介绍城市地平线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TimeLimit: 1 Second   MemoryLimit: 64 Megabyte

Totalsubmit: 10   Accepted: 1  

Description

在一条水平线上有N个建筑物,建筑物都是长方形的,且可以互相遮盖。给出每个建筑物的左右坐标值Ai,Bi以及每个建筑物的高度Hi,需要计算出这些建筑物总共覆盖的面积。

Input

第一行为建筑物的个数N(1<=N<=40000),第二行到第N+1行为每个建筑物的左右坐标值Ai,Bi(1<=Ai<Bi<=1000000000)和建筑物的高度Hi(1<=Hi<=1000000000)。

Output

总面积S。

Sample Input


5
1 5 10
2 6 30
3 7 20
4 6 15
5 10 5

Sample Output


165


#include <iostream>using namespace std;#define MAXN 40001struct Line
{int x1, x2, height;
}line[MAXN];struct Node
{int l, r, col;long long len;
};int temp[MAXN * 2];
int ans[MAXN * 2];bool cmp(Line a, Line b)
{return a.height > b.height;
}class SGtree
{public:Node node[MAXN << 2];void Maketree(int i, int l, int r);void Update(int i, int x, int y, int val);
}tree;void SGtree::Maketree(int i, int l, int r)
{node[i].l = l;node[i].r = r;int mid = (l + r) >> 1;if (l + 1 == r){return ;}Maketree(i * 2, l, mid);Maketree(i * 2 + 1, mid, r);
}void SGtree::Update(int i, int x, int y, int val)
{int l = node[i].l;int r = node[i].r;if (temp[l] == x && temp[r] == y){node[i].col = 1;node[i].len = (temp[r] - temp[l]);return ;}if (node[i].col){node[i * 2].col = node[i * 2 + 1].col = node[i].col;node[i].col = 0;node[i * 2].len = temp[node[i * 2].r] - temp[node[i * 2].l];node[i * 2 + 1].len = temp[node[i * 2 + 1].r] - temp[node[i * 2 + 1].l];}int mid = temp[(l + r) >> 1];if (y <= mid){Update(i * 2, x, y, val);       }else if (x >= mid){Update(i * 2 + 1, x, y, val);   }else{Update(i * 2, x, mid, val);Update(i * 2 + 1, mid, y, val); }node[i].len = node[i * 2].len + node[i * 2 + 1].len;
}void input()
{int n, x1, x2, height, cnt = 0;cin >> n;for (int i = 0; i < n; i++){scanf("%d %d %d", &x1, &x2, &height);line[i].x1 = x1;ans[cnt++] = x1;line[i].x2 = x2;ans[cnt++] = x2;line[i].height = height;}sort(line, line + n, cmp);sort(ans, ans + cnt);int flag = -1;int total = -1;for (int i = 0; i < cnt; i++){if (ans[i] != flag){flag = ans[i];total++;}temp[total] = ans[i];}tree.Maketree(1, 0, total);long long sum = 0;for (int i = 0; i < n; i++){tree.Update(1, line[i].x1, line[i].x2, 1);if (i != n - 1){sum += (long long)(line[i].height - line[i + 1].height) * tree.node[1].len;}else{sum += (long long)line[i].height * tree.node[1].len;}}cout << sum << endl;
}int main()
{input();return 0;
}


这篇关于城市地平线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062428

相关文章

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

SparseDrive - 清华地平线开源的e2e的框架

清华地平线合作开发的e2e的框架 SparseDrive资源 论文 https://arxiv.org/pdf/2405.19620 git https://github.com/swc-17/SparseDrive 个人觉得该文章厉害的地方 纯sparse mapping, 3d detection方案, 用的检测头sparse4D V3 sparsev1v2v3基本一致,map也是稀疏检

2024年上海松江启动建筑绿色低碳发展专项检查,共绘城市节能新篇章

2024年9月4日,2024年度松江区建筑工程绿色低碳发展工作专项检查会议正式开展,会议内容主要围绕以下三点, 1、《关于开展 2024年度本市建筑领域绿色低碳发展工作监督检查的通知》宣贯。 2、分项计量、能效测评工作验收要求介绍。 3、专项检查工作安排。 我国在早期没有高度重视建筑物的环保节能,造成了过去30年内竣工的建筑绝大多数是高能耗工程建筑,这类工程建筑在未来几十年里将耗费许多能源

五星级可视化页面(06):城市鸟瞰页面,居高临下,高屋建瓴。

本期分享城市鸟瞰图的可视化大屏幕,这类场景一般在智慧城市和城市治理可视化中常用。

利用高德API获取整个城市的公交路线并可视化(四)

副标题:公共汽电车站点覆盖率——以厦门市公交线路为例 书接上回,我们有了公交的线路、站点数据,并同时对数据质量进行了校验,但是不同城市情况不同,需要看当地对公交交通数据的开放程度,部分城市建设的有大数据平台,也可以检索到公共交通的一些标签数据,这篇文章我们来讨论一下公交覆盖率; 公交数据获取方式参考我上篇文章:利用高德API获取整个城市的公交路线并可视化(三)-CSDN博客 首先先根据行政区

地平线Sparse4D论文解析(含论文原文)

0. 摘要 在自动驾驶感知系统中,3D 检测和跟踪是两个基本任务。本文深入研究了这一领域,并在 Sparse4D 框架的基础上进行了扩展。我们引入了两个辅助训练任务(时间实例去噪和质量估计),并提出了解耦注意力机制,以进行结构性改进,从而显著提升了检测性能。此外,我们通过在推理过程中分配实例 ID 的简单方法,将检测器扩展为跟踪器,进一步突出基于查询的算法的优势。在 nuScenes 基准测试上

P4842 城市旅行(拆贡献 + LCT)

https://www.luogu.com.cn/problem/P4842 发现题目就是要维护一个LCT,然后我们只要把pushup写成功了就行。 那我们现在就不管LCT了,就单纯想用一棵二叉查找树怎么维护。分母是好搞的,分子我们要想点办法。 考虑右子树对左子树的贡献,我们假设处理出一个 L [ k ] L[k] L[k] 表示左子树中每个值乘以左边界的可选数量,我们现在再乘上右子树的大

可以进行非机动车违停、人员聚集、临街摆摊、垃圾满溢、烟雾火情等城市治理场景的智能识别的智慧城管开源了

智慧城管视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。 基于深度学习技术及强大的专家团队,针对多个工业垂类场景进行算法优化,打造最优的工业AI算法模型,提供更加精准的工业AI模型库,客户可直接选择适合自己业务场景的模型,快速实现业务落地

渣土车识别算法解决城市治理难题

随着城市化进程的加速,渣土车作为建筑工程中不可或缺的运输工具,其频繁的穿行和装载运输过程往往引发一系列问题,如超载、扬尘污染、乱倒渣土等,对城市环境和交通秩序造成了不良影响。为了解决这些问题,采用基于视觉分析的渣土车识别算法已成为现代城市治理中一种有效的技术手段。本文将从背景、技术实现、功能优势和应用方式等多个方面,探讨如何利用视觉分析技术来识别和管理渣土车,从而实现智能化、精细化的城市管理。

智慧环卫:城市清洁的未来图景与技术革新

在智慧城市的宏伟蓝图中,“智慧环卫”正以其独特的姿态,悄然改变着城市的清洁与环境卫生管理方式。智慧环卫不仅仅是技术的简单应用,更是城市管理智慧化、生态化的重要体现。本文旨在深入探讨智慧环卫的内涵、技术支撑、实践案例及对城市环境改善的深远影响。 智慧环卫:定义与价值 智慧环卫是指通过集成物联网(IoT)、大数据、地理信息系统(GIS)、人工智能(AI)等技术,对城市垃圾收运、清洁作业、公厕所以及