当前位置: 代码迷 >> 综合 >> 【线段树】[NOI2016]区间
  详细解决方案

【线段树】[NOI2016]区间

热度:30   发布时间:2023-09-12 10:09:47.0

题目描述

在数轴上有 n 个闭区间 [l1,r1],[l2,r2],...,[ln,rn] 。现在要从中选出 m 个区间,使得这 m 个区间共同包含至少一个位置。换句话说,就是使得存在一个 x,使得对于每一个被选中的区间 [li,ri] ,都有 lixri

对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间 [li,ri] 的长度定义为 ri?li,即等于它的右端点的值减去左端点的值。

求所有合法方案中最小的花费。如果不存在合法的方案,输出 ?1

输入格式

第一行包含两个正整数 n,m,用空格隔开,意义如上文所述。保证 1mn

接下来 n 行,每行表示一个区间,包含用空格隔开的两个整数 li ri 为该区间的左右端点。

输出格式

只有一行,包含一个正整数,即最小花费。

样例一

input

6 3
3 5
1 2
3 4
2 2
1 5
1 4

output

2

explanation

【线段树】[NOI2016]区间

如图,当 n=6, m=3 时,花费最小的方案是选取 [3,5][3,4][1,4] 这三个区间,他们共同包含了 4 这个位置,所以是合法的。其中最长的区间是 [1,4] ,最短的区间是 [3,4],所以它的花费是 (4?1)?(4?3)=2

样例二

见样例数据下载。

样例三

见样例数据下载。

限制与约定

所有测试数据的范围和特点如下表所示:

测试点编号 n m li,ri
1 20 9 0liri100
2 10
3 199 3 0liri100000
4 200
5 1000 2
6 2000
7 199 60 0liri5000
8 200 50
9 0liri109
10 1999 500 0liri5000
11 2000 400
12 500 0liri109
13 30000 2000 0liri100000
14 40000 1000
15 50000 15000
16 100000 20000
17 200000 0 \le l_i \le r_i \le 10^90liri109
18 300000 50000
19 400000 90000
20 500000 200000

时间限制:3s

空间限制:256MB

下载

样例数据下载

相关文章

【线段树】[NOI2016]区间

【树状数组】[BZOJ1878]HH的项链

题目大意 DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此, 他的项链变得越来越长。有一天…
阅读更多...
【线段树】[NOI2016]区间

【线段树分治】[BZOJ4311]向量

题目描述 Description你要维护一个向量集合,支持以下操作:1.插入一个向量(x,y)2.删除插入的第i个向量3.查询当前集合与(x,y)点积的最大值是多少。如果当前是空集输出0Input第一行输入一个整数n,表示操作个数接下来n行,每行先是一…
阅读更多...
【线段树】[NOI2016]区间

【Bluestein's Algorithm】[POJ2821]TN's Kingdom III - Assassination

题目大意 TN要暗杀Dzx,为了保密,他想到了这样一种方式:首先,把信息编码为N个实数,组成序列α,之后再随便搞一个长度为N的实数序列β。然后按照下面的步骤计算序列γ: 0、做一个空序列γ。 1、…
阅读更多...
【线段树】[NOI2016]区间

【DP or 生成函数】[CodeForces - 712D]Memory and Scores

题目大意 Memory 和 Lexa分别取数,取t轮,每一轮取的数字的范围为[?k,k],并且将取的数字加他们的得分,问有多少种方案Memory的得分严格大于Lexa。 分析 算法1 :DP 很容易想到计算一个人在游戏开始后得分的动态规划。 令f[i][…
阅读更多...
【线段树】[NOI2016]区间

【Fibonacci 序列+第一类Stirling数+二项式定理】[CodeForces - 717A]Festival Organization

题目大意 问有多少种方案选择k个不同的长度相同01串。 这些01串中要求不能出现连续的两个0。长度在[l,r]区间内。 分析 很容易发现,长度为i合法01串个数为Fi+2(Fi表示斐波那契数列的第i项),方案数就为(Fi2k),令Sn∑n2i3(Fik),…
阅读更多...
【线段树】[NOI2016]区间

【费用流】[CodeForces - 717G]Underfail

题目大意 题目大概说给一个主串和几个有价值的模式串,某个模式串与主串匹配就能累加对应的价值,一个模式串可以在多个位置和主串匹配但同一个位置只能一次,此外主串各个字符最多可以用x次,问如何匹配使获得的价值最大。 分析 暴…
阅读更多...
【线段树】[NOI2016]区间

【线段树】[CodeForces - 717F]Heroes of Making Magic III

题目大意 一个长度为n的序列,每一个位置都有一些小怪。英雄可以在序列上左右移动,并且可以击杀一个他所到达的位置上的小怪,每次移动必须击杀小怪。 有两种操作: 1 a b k 区间[a,b]中的每一个位置都增加k个小怪2 a b 英雄能否在…
阅读更多...
【线段树】[NOI2016]区间

【DP】[CodeForces - 713C]Sonya and Problem Wihtout a Legend

题目大意 给你一个序列,每次操作你可以使一个数1或-1,问最少需要多少次操作能够使这个序列严格递增。 分析 严格递增就是要ai1>ai1,我们两边同时减去i?1,就是ai1?(i1)>ai?i我们令biai?i,原问题就等价于使…
阅读更多...
【线段树】[NOI2016]区间

【DP+二分】[CodeForces - 713D] Animals and Puzzle

题目大意 给你一个01矩阵,询问一个矩形区域内最大的全1正方形。 分析 令f[i][j]表示以(i,j)为右下角的最大全1正方形。 显然f[i][j]min(f[i?1][j],f[i][j?1],f[i?1][j?1])1然后用二维st表维护f数组的区间最大值 然后对于每个询问x1,y1,x2,y2,我…
阅读更多...
【线段树】[NOI2016]区间

【网络流】[Codeforces - 739D]Recover a functional graph

题目大意 有一个n个点的有向图,每个点的出度为1。 对于每个点,有两个信息,一个是这个点到环的距离x,一个是这个点能够到达的环的长度y。 有一些点的的某些信息未知,求能否构造出这样一个图。 分析 对于两个信息都…
阅读更多...