标签:连边 13 省选 复杂度 times 枚举 考虑 排序 模拟
一般图带权多重匹配
考虑如果都是偶数的点,那么我们可以将每一点的连边划分为入边和出边,这样构成很多个欧拉回路。
对于每个点入度和出度相等,特别的,自环也可以计算在内。
这样就可以net-flow,跑一个最小费用最大流。
考虑加入某些奇点,这样形成的是欧拉路,无非就是枚举这个点增加的是入度还是出度,然后取最小值即可。
复杂度\(O(2^k\times n^2 |v|)\)。
排序
对于每个点的所有可能序列,我们只需要考虑其左右端点即可。
首先一个点的所有区间一定无包含,否则小区间一定更优。
那么现在就可以合并儿子,枚举第一个选什么,然后进行装压DP,求出可行的最小右端点即可。
复杂度\(O(2^k\times m\times log^2m)\)。
传染
一个朴素的思路是枚举所有点对,然后可到达的去连边,缩点之后没有入度的强联通分量的个数就是答案。复杂度\(O(n^2)\)。
算法瓶颈在于建边。
考虑到算法的实质是在枚举点对,然后搞出点对的关系。
我们可以换一种统计方式——点分治。
考虑如何建图,暴力还是去一个一个把能覆盖的点连边。考虑前缀优化建图。
将点按照覆盖能力排序,然后当前点一定能覆盖到之前点覆盖过的点,我们没必要一一连边,只需要向对应的前缀虚点连边即可。
复杂度\(O(nlog^2n)\),瓶颈在于排序。
标签:连边,13,省选,复杂度,times,枚举,考虑,排序,模拟 来源: https://www.cnblogs.com/zhaoxubing/p/15881748.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。