XTUOJ 区间覆盖总长(线段树+离散化)

本文详细介绍了如何运用线段树和离散化技术解决区间覆盖问题,通过实例解析算法实现过程,帮助读者理解XTUOJ中此类问题的解题思路。

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



区间覆盖总长

Submit Code ] [ Top 20 Runs ]
Acceteped : 43   Submit : 235
Time Limit : 3500 MS   Memory Limit : 65536 KB
 

Description

题目描述

在X轴上给你一些线段,问被这些线段覆盖的区间长。

输入

每个样例的第一行是一个整数K(K≤10000),表示线段的个数,如果K=0表示输入结束。以后的K行,每行为一个线段的左右端点x1,x2,(0 ≤ x1 < x2 ≤ 1,000,000,000)。

输出

每行输出一个样例的结果。

样例输入
2
1 2
2 3
3
1 3
0 2
5 6
0
样例输出
2
4
 

区间覆盖总长

Submit Code ] [ Top 20 Runs ]
Acceteped : 43   Submit : 235
Time Limit : 3500 MS   Memory Limit : 65536 KB
 

Description

题目描述

在X轴上给你一些线段,问被这些线段覆盖的区间长。

输入

每个样例的第一行是一个整数K(K≤10000),表示线段的个数,如果K=0表示输入结束。以后的K行,每行为一个线段的左右端点x1,x2,(0 ≤ x1 < x2 ≤ 1,000,000,000)。

输出

每行输出一个样例的结果。

样例输入
2
1 2
2 3
3
1 3
0 2
5 6
0
样例输出
2
4
 这是在XTUOJ上的一道题 http://202.197.224.59/exam/index.php/problem/read/id/1126

因为开不了10^9这么的的数组,先离散化处理下(这是很常见的操作,一定要掌握)
连pushup和pushdown都不需要,所以非常适合线段树入门


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<set>
using namespace std;
const int N = 20010;

struct acm
{
       
       
    int lt;
    int rt;
    int lazy;
}node[N*4];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值