首页 > 其他分享 >k 不相交区间

k 不相交区间

时间:2024-04-02 18:33:56浏览次数:9  
标签:费用 容量 相交 区间 sim rightarrow

题意:给定一个序列,要求从中选出 \(k\) 个不相交的区间使和最大。\(n\le 10^5\)。

如果 DP,至少 \(O(n^2)\)。而这题可以模拟费用流做。

【费用流模型】

建立 \(n+1\) 个点 \(p_1\sim p_{n+1}\),\(p_i\rightarrow p_{i+1}\) 容量 \(1\) 费用 \(a_i\)。

\(S\rightarrow p_1\sim p_n\),容量 \(1\) 费用 \(0\)。

\(p_2\sim p_{n+1}\rightarrow T\),容量 \(1\) 费用 \(0\)。

\(S'\rightarrow S\),容量 \(k\) 费用 \(0\)。

【模拟费用流】

线段树模拟费用流,维护区间状态、区间和、区间最大同状态子段和。

标签:费用,容量,相交,区间,sim,rightarrow
From: https://www.cnblogs.com/FLY-lai/p/18111265

相关文章

  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);//读取输入的整数n和kintn=sc.nextInt();//数组长度intk=sc.nextInt();//取模的值......
  • 4.区间最大和
    问题描述给定一个序列a[1],a[2],...,an]和一个整数k,请找出-个长度正好为的区间,使得区间中所有数的和最大即要找到一个整数p,使得1<p且p+k-1n,使得ap+ap+1+·.·+ap+k-1]最大输入格式输入的第一行包含两个整数n,k。第二行包含n个整数,相邻的整数之间使用一个空格分隔表示......
  • 2580. 统计将重叠区间合并成组的方案数(中等)
    核心思想先按第一个元素排序,原区间重合的合并为一个,计算合并完后的区间个数。每个区间都有2个选择,res不断乘2。classSolution{publicintcountWays(int[][]ranges){longres=1;finalintMOD=(int)(1e9+7);Arrays.sort(ranges,(......
  • 从 String.prototype.substring 的区间开始
    因为使用String.prototype.substring(start,end)或者Array.prototype.slice(start,end)的时候偶尔会想不起来这些函数的区间代表的是什么。在这里记录一下。不同函数的差异这些区间都是[start,end),即是包括start,但是不包括end(当没有传入end时,end视为数组或者字符串......
  • 代码随想录算法训练营第36天| 435. 无重叠区间、763.划分字母区间、56. 合并区间
    435.无重叠区间题目链接:无重叠区间题目描述:给定一个区间的集合intervals,其中intervals[i]=[starti,endi]。返回需要移除区间的最小数量,使剩余区间互不重叠。解题思想:这道题目和射气球很像。*“需要移除区间的最小数量,使剩余区间互不重叠”*等效于求重叠区......
  • AcWing刷题-区间合并
    校门外的树区间合并:fromtypingimportListdefmerge(intervals:List[List[int]])->List[List[int]]:#按照第一个元素从小到大进行排序intervals.sort(key=lambdax:x[0])#初始化一个新的数组new_list=list()foriinintervals:......
  • 【Java编程】【算法面试题】【数组合并】以数组 intervals 表示若干个区间的集合,其中
    原始题目:以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。......
  • 【力扣hot100】160.相交链表
    相交链表给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。示例1:输......
  • 二十二 1388. 游戏 (区间DP|博弈论)
    388.游戏(区间DP|博弈论)思路:在最坏情况下考虑问题,每个人都选择对自己有利的情况,dp[i][j]指的是对方获得的分差,分值总和固定为sum,因此我方方差越大,对方的分值就越小。最后A+B=sum,A-B=diff。importjava.util.*;publicclassMain{privatestaticintN,sum,dif......
  • 代码随想录训练营Day36:● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
    435.无重叠区间题目链接https://leetcode.cn/problems/non-overlapping-intervals/description/题目描述思路直接统计重叠区间的个数,就是需要删除的个数publicinteraseOverlapIntervals(int[][]intervals){Arrays.sort(intervals,(a,b)->Integer.com......