洛谷传送门 LOJ传送门 很巧妙的建图啊...刚了$1h$也没想出来,最后看的题解 发现这道题并不类似于我们平时做的网络流题,它是在序列上的,且很难建出来二分图的形. 那就让它在序列上待着吧= = 对于一个区间,左端点向右端点连边,流量为$1$,费用为区间长度 对于一个位置$i$,向$i+1$连边,流量为$K$,费用为$0$ 为什么要这么建图呢? 假设有$1$流量流到了位置$i$,有两种情况 1.选择一个从i开始的区间$[i,r]$,这点流量流到了$r$位置.而在$(i,r)$内,这点流量不能用…
洛谷传送门 LOJ传送门 最长k可重区间集问题的加强版 大体思路都一样的,不再赘述,但有一些细节需要注意 首先,坐标有负数,而且需要开$longlong$算距离 但下面才是重点: 我们把问题放到了二维平面内,如果出现了垂直于$x$轴的线段,该如何处理呢?直接当成线段处理显然不可取 假设这条线段的横坐标是$x$ 1.它不会对从$x$开始的倾斜线段产生任何影响,但会和穿过$x$的倾斜直线抢位置 2.它会和同样在$x$垂直的线段抢位置 我用了一个比较笨的做法,先把横坐标离散,再把离散后的横坐标抻成原来…
743. [网络流24题] 最长k可重区间集 ★★★   输入文件:interv.in   输出文件:interv.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: «编程任务: 对于给定的开区间集合I和正整数k,计算开区间集合I的最长k可重区间集的长度. «数据输入: 由文件interv.in提供输入数据.文件的第1 行有2 个正整数n和k,分别表示开区间的 个数和开区间的可重迭数.接下来的n行,每行有2个整数,表示开区间的左右端点坐标. «结果输出: 程序运行结…
最长 \(k\) 可重区间集 题目大意 给定实心直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取开区间集合 \(S \subseteq I\) ,使得在实直线 \(L\) 上的任意一点 \(x\) , \(S\) 中包含 \(x\) 的开区间个数不超过 \(k\) ,且 \(\sum_{z\in S}|Z|\) 达到最大( \(|Z|\) 表示开区间 \(z\) 的长度). 这样的集合 \(S\) 称…
https://www.luogu.org/problemnew/show/3358 以区间(1,5),(2,6),(7,8)为例 建模方法一: 建模方法二: 离散化区间端点 相当于找k条费用最大的不相交路径 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N…
题目链接:戳我 当时刷24题的时候偷了懒,没有写完,结果落下这道题没有写qwq结果今天考试T3中就有一部分要用到这个思想,蒟蒻我硬是没有想到网络流呜呜呜 最大费用流. 就是我们考虑将问题转化一下,转化成从出发点开始往后走K次,每次可以走一个区间.因为题目中没有给坐标轴的大小,所以为了防止过大,我们离散化一下坐标.之后就是为每个区间添加一个费用为区间长度的,容量为1的边.(因为每个区间只能经过一次).(为什么可以要用到网络流呢,因为网络流有一个很好的特性就是可以退流啊!我们如果选择不走这个区间的话…
[网络流24题]最长k可重区间集(费用流) 题面 Cogs Loj 洛谷 题解 首先注意一下 这道题目里面 在Cogs上直接做就行了 洛谷和Loj上需要判断数据合法,如果\(l>r\)就要交换\(l,r\) 首先离散化 数据范围比较大 记录一下\(l,r\)和区间大小 这个问题可以换一种看法 相当于从源点出发,走K次, 问你路径的最大权值和 其中有些边可以无限制的走,但是它们的长度为0 所以从源点开始到汇点,挂出一条链来 容量为K,费用为0 这些路是可以随便走的 另外,还有若干个区间 但是每个只…
最长 \(k\) 可重线段集 题目大意 给定平面 \(x-O-y\) 上 \(n\) 个开线段组成的集合 \(I\) ,和一个正整数 \(k\) .试设计一个算法,从开线段集合 \(I\) 中选取开线段集合 \(S \subseteq I\) ,使得在 \(x\) 轴上的任意一点 \(P\) , \(S\) 中与直线 \(x=p\) 相交的开线段个数不超过 \(k\) ,且 \(\sum_{z \in S}|z|\) 最大.这样的集合 \(S\) 称为开线段集合 \(I\) 的最长 \(k\)…
题目描述 对于给定的开区间集合 I 和正整数 k,计算开区间集合 I 的最长 k可重区间集的长度. 输入输出格式 输入格式: 的第 1 行有 2 个正整数 n和 k,分别表示开区间的个数和开区间的可重迭数.接下来的 n行,每行有 2 个整数,表示开区间的左右端点坐标. 输出格式: 将计算出的最长 k可重区间集的长度输出 输入输出样例 输入样例#1: 复制 4 2 1 7 6 8 7 10 9 13 输出样例#1: 复制 15 说明 对于100%的数据,1\le n\le 5001≤n≤500 ,…
最长k可重线段集问题 时空限制1000ms / 128MB 题目描述 给定平面 x−O−y 上 n 个开线段组成的集合 I,和一个正整数 k .试设计一个算法,从开线段集合 I 中选取出开线段集合 S⊆I ,使得在 x 轴上的任何一点 p,S 中与直线 x=p 相交的开线段个数不超过 k,且∑​∣z∣达到最大.这样的集合 S 称为开线段集合 I 的最长 k 可重线段集.∑​∣z∣ 称为最长 k 可重线段集的长度. 对于任何开线段 z,设其断点坐标为 (x0​,y0​) 和 (x1​,y1​),则…