数据结构报告

这篇报告深入探讨了数据结构中的线段树降维和并查集的应用。在线段树降维问题中,通过坐标离散化和扫描线策略解决覆盖面积计算。而在并查集中,强调了路径压缩的重要性,并通过实例解释了如何避免长链问题。此外,报告还涵盖了其他相关题目,如覆盖周长计算、团队组建优化和信息验证等实际问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报告用的,和之前的内容可能有点重请见谅;)


线段树降维

恍然大悟

给出一些矩形的位置和大小,求总共覆盖面积。
示意图

解法:
一个方向作为扫描线。另一个方向坐标离散化。
扫描线往上划,依次更新区间。

注意:定义好每个变量的含义。
cover是一个区间被完全覆盖时,计数覆盖了几重。子区间不用继承父区间的重数,否则在更新时会出错!(这点坑了一天)
has是一个区间完全没被覆盖置为0,否则只要沾边就置为1.当子区间has为1时,父区间has必定为1.同时该区间cover>0时,has必为1.

void update(int rt, int beg, int end, int l, int r, int flag)
{
    if(l > r || end < l || r < beg) return;
    if(l <= beg && end <= r)
    {
        cover[rt] += flag;
        if(beg == end)
            has[rt] = cover[rt] ? 1 : 0;
        else
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值