组合数学or not ---- n选k有重】的更多相关文章

模板问题: 1. 取物品 (comb.pas/c/cpp) [问题描述] 现在有n个物品(有可能相同),请您编程计算从中取k个有多少种不同的取法.[输入] 输入文件有两行,第一行包含两个整数n,k(2<=n<=30,0<=k<=n).第二行,包含n个整数表示物品的编号(范围1..1000).编号相同的物品看作同一种物品. 想想看,组合数学中有这样的模型吗?答案是,肯定会有的.但是因为这个问题的灵活性,还没有通项公式. 想象当每个数都不同时,这个问题就变成了${n \choose k…
题目描述 给定实直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取出开区间集合 \(S \subseteq I\) ,使得在实直线 \(L\) 的任何一点 \(x\) ,\(S\) 中包含点 \(x\) 的开区间个数不超过 \(k\) .且 \(\sum\limits_{z \in S} | z |\) 达到最大.这样的集合 \(S\) 称为开区间集合 \(I\) 的最长 \(k\) 可重区间集.\(\…
最长 \(k\) 可重区间集 题目大意 给定实心直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取开区间集合 \(S \subseteq I\) ,使得在实直线 \(L\) 上的任意一点 \(x\) , \(S\) 中包含 \(x\) 的开区间个数不超过 \(k\) ,且 \(\sum_{z\in S}|Z|\) 达到最大( \(|Z|\) 表示开区间 \(z\) 的长度). 这样的集合 \(S\) 称…
最长 k 可重区间集问题题解: 突然想起这个锅还没补,于是来把这里补一下qwq. 1.题意简述: 有\(n\)个开区间,这\(n\)个开区间组成了一个直线\(L\),要求选择一些区间,使得在直线\(L\)上的任意一点,对于你选择的区间来说,包含这个点的区间个数不超过$k $,且满足区间长度和最大. 2.要点: 因为是开区间,所以长度为\(r-l\) 所用算法为\(EK\)费用流 3.\(solution1 :\) 首先让我们思考这个过程,我们要选择一些区间,那么限制条件是得给在区间上的.考虑这么…
743. [网络流24题] 最长k可重区间集 ★★★   输入文件:interv.in   输出文件:interv.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: «编程任务: 对于给定的开区间集合I和正整数k,计算开区间集合I的最长k可重区间集的长度. «数据输入: 由文件interv.in提供输入数据.文件的第1 行有2 个正整数n和k,分别表示开区间的 个数和开区间的可重迭数.接下来的n行,每行有2个整数,表示开区间的左右端点坐标. «结果输出: 程序运行结…
[] 输入文件示例input.txt4 21 76 87 109 13 输出文件示例output.txt15 [分析] 直接co题解好了,写得挺全.. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a><i.b>,建立附加源S汇T,以及附加顶点S'. 1.连接S到S'一条容量为K,费用为0的有向边.2.从S'到每个<i.a>连接一条容量为1,费用为0的有向边.3.从每个<i.b>到T连接一条容量为1,费用为0的有向边.4.从每个…
最长k可重区间集问题 题目链接 https://www.luogu.org/problemnew/show/3358 做法 所有点向下一个点连容量为k费用为0的边 l和r连容量为1费用为区间长度的边 然后跑最大流最大费用流 (最大费用就是把边权取相反数跑最小费用 最后再输出最终费用的相反数) 思考 在整张图中,只有l - >r的边有费用 而且费用为区间长度 (i->i+1费用为0) 所以跑最大费用也就是求最长区间 #include <algorithm> #include <…
[网络流24题]最长k可重线段集(费用流) 题面 Cogs的数据有问题 Loj 洛谷 题解 这道题和最长k可重区间集没有区别 只不过费用额外计算一下 但是,还是有一点要注意的地方 这里可以是一条垂直的直线 所以,首先把所有的x轴全部乘2 如果两个相等就把右端点+1 否则左端点+1 这样就可以解决垂直于x轴的问题了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #…
[网络流24题]最长k可重区间集(费用流) 题面 Cogs Loj 洛谷 题解 首先注意一下 这道题目里面 在Cogs上直接做就行了 洛谷和Loj上需要判断数据合法,如果\(l>r\)就要交换\(l,r\) 首先离散化 数据范围比较大 记录一下\(l,r\)和区间大小 这个问题可以换一种看法 相当于从源点出发,走K次, 问你路径的最大权值和 其中有些边可以无限制的走,但是它们的长度为0 所以从源点开始到汇点,挂出一条链来 容量为K,费用为0 这些路是可以随便走的 另外,还有若干个区间 但是每个只…
题面戳我 sol 千万!千万!不要理解错题意了!最长K可重,不是说线段最多K可重!你以为计算几何? 原文:使得在\(x\)轴上的任何一点\(p\),\(S\)中与直线\(x=p\)相交的开线段个数不超过\(k\). 所以这题就和最长K可重区间集问题是一样的! 只是这里有个坑.线段可以垂直\(x\)轴对吧(废话),那么你直接离散化然后连边就会连出一个负边权的自!环!,然后spfa呵呵呵.死掉了. 为了解决这一问题,我们把所有横坐标都扩大两倍,然后左端点++.对于那些左右端点相等的线段,就把左端点+…