洛谷P1496火烧赤壁题解——离散化,差分找规律完成

博客解析了洛谷P1496题,通过离散化和差分方法处理大范围区间问题,降低复杂度。文章强调了离散化的重要性,并详细解释了差分的概念及其在解决区间覆盖问题中的应用,包括如何通过排序和特殊技巧进一步优化到O(n log n)复杂度。
摘要由CSDN通过智能技术生成

传送门:烧壁

知识点

离散化差分找规律
主要是想考察离散化,但隐藏了一些性质

题目大意:

给定n个区间[l_i,r_i]进行涂色,求最后涂色的区间长度(不是点的长度)。
其中 1 ≤ n ≤ 2 × 1 0 4 , − 2 31 ≤ l i , r i ≤ 2 31 1 \leq n\leq 2 \times 10^4,-2^{31}\leq l_i ,r_i \leq 2^{31} 1n2×104,231li,ri231

题目解读与分析

之所以给这么大的区间范围说白了就是不打算让你枚举,但是我们又观察到原轴上的节点数其实
至多有 N < < 1 N<<1 N<<1个,所以本题符合数量少,数值大且满足单调性的特点,我们考虑离散化进行缩点。
就会将区间范围缩成 [ 1 , 4 × 1 0 4 ] [1,4 \times 10^4] [1,4×104]这下就可以 O ( n ) O(n) O(n)枚举了。
总复杂度 T = O ( n 2 ) T = O(n ^ 2) T=O(n2)
参考代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 2e4 + 10;
int n,x[N],y[N];
long long c<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值