![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
离散化
文章平均质量分 65
AC__dream
道阻且长,行则将至;行而不辍,未来可期!
展开
-
(HDU - 1255)覆盖的面积(扫描线)
给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.Input左下角坐标和右上角坐标输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试数据的第一行是一个正整数N(1<=N<=1000),代表矩形的数量,然后是N行数据,每一行包含四个浮点数,代表平面上的一个矩形的左下角坐标和右上角坐标,矩形的上下边和X轴平行,左右边和Y轴平行.坐标的范围从0到100000.注意:本题的输入数据较多,推荐使用scanf读入数据.Out..原创 2022-02-02 11:15:00 · 770 阅读 · 0 评论 -
(POJ - 1177)Picture(扫描线+离散化)
题目链接:Picture - POJ 1177 - Virtual Judge题意:墙上贴着许多形状相同的海报、照片。它们的边都是水平和垂直的。每个矩形图片可能部分或全部的覆盖了其他图片。所有矩形合并后的边长称为周长。编写一个程序计算周长分析:做这道题目之前需要对扫描线离散化基本知识有一定的了解,如果还有不了解扫描线的小伙伴可以看下我之前的一篇介绍扫描线的博客,下面附上博客地址:离散化扫描线_AC__dream的博客-CSDN博客其实求合并后矩形周长和求合并后矩形面积是差不多..原创 2022-02-01 16:30:00 · 785 阅读 · 0 评论 -
离散化扫描线
这是一道需要离散化后的扫描线模板题,但是这道题有一个细节非常重要,所以拿出来单独说一下,扫描线的基本实现原理我就不赘述了,如果还有不明白的小伙伴可以看下我之前的介绍扫描线的博客,下面是地址:油漆面积(扫描线)_AC__dream的博客-CSDN博客这两道题最大的区别就是这道题目的数据范围是1e9,显然不能直接建立这么大的线段树,需要我们先对给出的数据进行离散化,然后再按照正常的扫描线来进行处理但是大家有没有发现扫描线要求我们维护的是线段,而不是一般的点,就比如我们离散化后的点一共有4个,假如我...原创 2022-01-31 16:54:46 · 584 阅读 · 0 评论 -
(CodeForces - 940F)Machine Learning(带修莫队+离散化)
题目链接:Problem - 940F - Codeforces题意:一看是一个离散的区间查询带修改问题就知道可以用带修莫队来解决。我们开一个cnt数组记录当前值出现的次数,再记录一个count数组来记录出现次数相同的值出现的次数(听起来有些绕哈,结合题意思考一下就知道是什么意思了),下面就是正常的带修莫队了,对于求mex我们是用暴力求得的。仔细观察一下数据范围,发现需要用到离散化,其他就是一个正常的带修莫队了,下面上代码:#include<cstdio>#include&.原创 2021-10-18 14:23:54 · 163 阅读 · 0 评论 -
Mushroom Gnomes(离散化+线段树)
题目链接:https://codeforces.com/problemset/problem/138/C题目中文翻译:n个电线杆,m棵小草,每个电线杆给位置a[i],高度h[i],倒向左边的概率L[i],倒向右边的概率R[i],倒向左边会覆盖[a[i]-h[i],a[i]-1].倒向右边会覆盖[a[i]+1,a[i]+h[i]],每棵小草都有自己的位置b[j],以及价值z[j],如果小草被一个电线杆或者多个电线杆砸到那么它的价值就为0,问最终所有小草价值的期望和。Input第一行n,m(1&原创 2021-08-21 09:01:40 · 133 阅读 · 0 评论 -
Infinite Inversions(离散化+线段树求逆序对)
There is an infinite sequence consisting of all positive integers in the increasing order:p = {1, 2, 3, ...}. We performednswapoperations with this sequence. Aswap(a, b)is an operation of swapping the elements of the sequence on positionsaandb. Yo...原创 2021-08-20 11:35:40 · 163 阅读 · 0 评论 -
离散化模板
离散化算是一个比较常用的工具,今天我主要说一下他的应用场景以及基本实现方法。我们在做题时经常会遇到这样的问题,就是给你的数是很大的,但是数目比较少,就比如要求前缀和,但是给的数的坐标比较大,这个时候数组往往是开不下的,我们就需要按照原来的相对大小关系进行离散化,先给出我觉得比较好用的一个离散化代码://查找函数int find(int x){ //alls是待离散化数组 return (lower_bound(alls.begin(),alls.end(),x)-alls.begin()原创 2021-08-20 10:02:01 · 154 阅读 · 0 评论