扫描线乱谈

扫描线乱谈

前置知识

离散化,线段树

扫描线

首先假设你有n个矩形。如果直接暴力求解这些矩形的覆盖面积肯定不行,这时就要用扫描线算法。
假设有一根线,从下往上扫描:

把每个小矩形分成很多不同的块,高是扫过的距离,那个位置没有被覆盖高就是0。显然答案就是高×宽的和。
每次线碰到矩形底边,其在x轴对应的位置(也就是投影)全部加1,相反,碰到底边则全部减1。
那么那一个线段树维护就好了,数据大需要离散化。
那么模板题的核心代码就是这个了:

add(f(b[0].x1),f(b[0].x2),1);
for(int i=1;i<2*n;i++){int x1 = f(b[i].x1) , x2 = f(b[i].x2);sum += (b[i].y - b[i-1].y) * w[0];add(x1,x2,b[i].o);
}
//add是区间加,b是上下边(x1,x2相当于l,r,若为底边则o=1否则o=-1),f是离散化函数

(很简单对吧,快去把模板题切了)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细介绍:量子计算学习(第十四周周报)

详细介绍:量子计算学习(第十四周周报)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

视频播放时切出页面视频暂停(亲测可用)

视频播放时切出页面视频暂停(亲测可用)谷歌浏览器方法:视频播放网页,右键—检查—Elements—Event Listeners—找到blur,点开小三角,remove掉所有子元素

VulkanAPI细节梳理1

1. PSOPipeline State Object,管线状态对象)? PSO 是 Vulkan 的核心概念之一,它是一个包含了渲染所需几乎所有状态的、不可变的对象。你可以把它想象成一台高度可配置的工业机器(GPU)的完整配置方案。在传统 API…

Win11 安装 MinGW

下载:https://github.com/niXman/mingw-builds-binaries/releases或者: 链接: https://pan.baidu.com/s/18nbkKpwnbrNenan9LLEUCA?pwd=twym 提取码: twym解压出来:添加环境变量:验证:

Base match

Humans CAN NOT learn anything MORE if humans are always hyper-intelligent-er or supercalifragilisticexpialidocious-er than others.The tag is biology so the base is the base. Watson-Crick pairing experi…

Polars return_type类型设置(KIMI)

Polars return_type类型设置(KIMI)本文为和KIMI的对话记录,仅供参考:Polars中map_elements返回类型可以设置哪些? User: polars中map_elements中有哪些return type可以设置? Kimi: 在 polars 中,map_elements 的…

意大利 公证 海牙认证速度 单号 双号

支付宝小程序 领事服务中心 那里(对应北京的领事) 比较慢,审核要一周,邮寄过去再寄回来又要一周。总共两周。可以接受单号 微信 山东外事 小程序 (对应济南的领事,只接受山东内的公证)审核很快,一天就审核通过…

Linux命令学习笔记

cd命令 1.切换上级目录 cd ..2.切换到当前用户主目录 cd ~ 3.切换上两级目录 cd ../..4.进入当前目录 cd . cat命令 1.查看文件 cat test.txt 2.查看文件并展示行号空行展示 cat -n test.txt 3.查看文件并展示行号,…

网络安全需要真正的承诺而非表面功夫

本文探讨企业网络安全的核心问题——真正的组织承诺。作者指出许多企业仅采取半吊子安全措施,强调网络安全需要从企业文化到软件开发方式的全面变革,而非依赖外部工具或培训。文章分析了安全厂商解决方案的局限性,并…

详细介绍:(附源码)基于Web的《药谷奇遇记》网站设计与实现-计算机毕设 72940

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

想成为AI绘画高手?打造独一无二的视觉IP!Seedream 4.0 使用指南详解,创意无界,效率翻倍!

想成为AI绘画高手?打造独一无二的视觉IP!Seedream 4.0 使用指南详解,创意无界,效率翻倍!想成为AI绘画高手?打造独一无二的视觉IP!Seedream 4.0 使用指南详解,创意无界,效率翻倍! AI-Compass 致力于构建最全面…

Python拼接协程的运行结果,平铺成一个序列(KIMI)

Python拼接协程的运行结果,平铺成一个序列(KIMI)本文为和KIMI的对话记录,仅供参考。协程结果平铺成序列 User: Python中想要把异步函数返回的列表拼接起来可以这么写吗? flags = await itertools.chain.from_iter…

Polars coalesce操作(取第一个非null值)(KIMI)

Polars coalesce操作(取第一个非null值)(KIMI)本文为和KIMI的对话记录,仅供参考:Polars join结合coalesce填充内容 User: 我有两个polars的dataframe,分别是df和df_task,两者都有id、text和labels字段,df的id…

完整教程:液氮低温恒温器的应用领域

完整教程:液氮低温恒温器的应用领域pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

数字孪生能源大数据云平台建设方案 - 实践

数字孪生能源大数据云平台建设方案 - 实践2025-09-18 20:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

轮转数组-leetcode

题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: …

CF1864G Magic Square

题面:(粘自洛谷) CF1864G Magic Square 题目描述 Aquamoon 有一个魔方,可以看作一个 \(n \times n\) 矩阵,矩阵的元素构成数字的排列 $1, \ldots, n^2 $ 。 Aquamoon 可以对矩阵执行两种操作:行移位,即将矩阵的整…

endsWith() 字符串部子串判断函数

endsWith() 字符串部子串判断函数前言endsWith()是Jmeter Java脚本组件中一个很好用的判断字符串尾串的函数。但,就是这么简单的函数,还是没能避免 一看就会,一练就废的陷阱。 踩坑之 一看就会,一练就废的endsWith…

OI TRICKS

位运算 每一位是独立的,可以拆开处理 \(a, b \in \{0, 1\}\),则xor and or\(a \oplus 1 = 1- a\) \(a \ \text{and} \ 0 = 0\) \(a \ \text{or} \ 1 = 1\)\(a \oplus 0 = a\) \(a \ \text{and} \ 1 = a\) \(a \ \…

深入解析:Okular开源免费的跨平台文档查看神器

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …