首页 > 其他分享 >模拟费用流

模拟费用流

时间:2024-08-20 09:18:00浏览次数:5  
标签:费用 增广 源点 汇点 节点 模拟 科目

模拟费用流是什么

考虑一般的单路增广费用流流程,就是一直去寻找最小/最大费用增广路的过程。但是寻找一条增广路往往需要最短路算法,这造成了很大的时间开销。找到增广路的方式不唯一,可以通过别的手段去寻找增广路。在一些特殊网络中可以获得更加优秀的时间复杂度。

QOJ 7185

题目描述

有 \(n\) 个学生和 \(k\) 门科目,第 \(i\) 个学生选择第 \(k\) 门科目的消耗为 \(a_{i,j}\) 。第 \(i\) 门科目至多被 \(b_i\) 个学生选择。希望求出每一个学生选择恰好一门科目的最小消耗和。

\(n \leq 5\times 10^4 ,k \leq 10\) 。

思路点拨

看到这个题目很容易想到一个网络流建模:

  • 一个源点,一个汇点,\(n\) 个代表学生的节点,\(k\) 个代表科目的节点。

  • 学生节点向源点连流量为 \(1\) ,代价为 \(0\) 的边。

  • 科目节点向汇点连流量为 \(b_i\) ,代价为 \(0\) 的边。

  • 第 \(i\) 个同学向第 \(j\) 个科目练流量为 \(1\) ,代价为 \(a_{i,j}\) 的边。

最终该网络的最小费用最大流就是正确答案,这里不多做讲述。相比之下我们更加关心图的性质以及增广路的形态。

经过观察,图具有如下性质:

  • 图是一张二分图,那么每一条增广路除了源点和汇点之外都是左-右-左交替的。

  • 最短路本身的性质:不会经过相同的节点(该网络图不存在负环)。

  • 关键性质:注意到结合上述两个性质,每一条增广路的长度都是 \(O(k)\) 级别的,因为右部点的数量很少。

我们将一次增广路径画出来:

标签:费用,增广,源点,汇点,节点,模拟,科目
From: https://www.cnblogs.com/-Aurore-/p/18368714

相关文章

  • KDY-补题报告D4:贪心模拟赛赛后补题报告
    在经过了整整10节课的学习之后,KDY的模拟赛还是一如既往的开始了。第一次模拟赛,写篇补题报告吧。一、比赛概况:共3题,时间75分钟,每题100分(可能吧)二、做题情况:还算可以,打了120分,不算太高,但也还行(毕竟D4的难度吗。。。)T1没分,T2100/100,T320/100。A:喷水装置(二) (喷水装置(一......
  • CSP 模拟 24
    T1与和\(a\operatorname{\&}b=x\\\\a+b=y\),\(x\)为\(a\)和\(b\)二进制下的公共部分,设为\(w\),\(a-w\)与\(b-w\)无公共部分,所以\(a+b-2w\)与\(w\)无公共部分,根据这个判一下就好了。std::cout<<(((y-2*x)&x)?"Yes\n":"No\n");T2函......
  • 暑假集训csp提高模拟4
    赛时rank43,T1100,T231,T30,T49T2由于学校机子的O2跑的还没有本地的O1快(太快啦!!!),挂了40ptsT4暴力没有取模和特判,挂了5pts与和[ABC238D]ANDandSUM签到题由于\(x\&y=a\),所以有\(x+y=s\ge2*a\)考虑二进制下的加法,如果有一个\(sth\)满足\(a*2+sth=s\),那么\(sth\&a\)......
  • 暑假集训CSP提高模拟24
    暑假集训CSP提高模拟24\(T1\)P268.与和\(100pts\)原题:[ABC238D]ANDandSUM\(x,y\)下界显然为\(a\),不妨让\(y=a,x=s-a\)然后进行\(check\)。正确性由下一种做法可以进一步推导。点击查看代码intmain(){ freopen("and.in","r",stdin); freopen("and.out"......
  • 威高血净偏高的关联交易:销售费用率远高同行,现金流转负
    《港湾商业观察》施子夫 王璐日前,山东威高血液净化制品股份有限公司(以下简称,威高血净)针对首轮审核问询函进行了回复。威高血净的上市梦由来已久。早在2022年6月公司就递表港交所,其后无果,2023年12月30日公司又递表上交所主板,保荐机构为华泰联合证券。威高血净成立于2004......
  • YC323C [ 20240724 CQYC NOIP 模拟赛 T3 ] 手环(ring)
    题意给定两个长为\(n\)的\(0/1\)串\(A,B\)。每次操作:对\(A\)向左或向右循环移位。选择\(0\lep<n\landB_i=1\),则将\(A_i\)取反。求将\(A\)变为\(B\)的最小操作次数。无解输出-1。\(n\le2000\)Sol显然无解当且仅当\(A\)和\(B\)不相同且\(B......
  • 阿里云ACP的三种报名与对应题库获取方式的详细说明(按费用排序)
    文章目录前言方式一、官方途径(较为昂贵)考试资格获取官方视频教程获取方式总结方式二、报名机构(价格适中,考取速度快)推荐机构大概费用机构报名方式机构报名后所携带的内容或者说对于其他方法有什么优势总结方式三、闲鱼(最便宜,但题库有风险)考试资格获取题库获取总......
  • C#模拟键盘输入、键状态和监听键盘消息
    模拟键盘输入模拟键盘输入的功能需要依赖Windows函数实现,这个函数是SendInput,它是专门用来模拟键盘、鼠标等设备输入的函数。另外和键盘输入相关的函数还有SendKeys,它是System.Windows.Forms.SendKeys,只能在WinFrom项目中使用,并且它的所有功能都可以由SendInput来实现。另一......
  • AIGC时代算法工程师的面试秘籍(第二十式2024.8.5-8.18) |【三年面试五年模拟】
    写在前面【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习......
  • [赛记] 暑假集训CSP提高模拟23
    进击的巨人100pts这题赛时10min打的$\Theta(n^2)$暴力然后过了,而且还是首A;正解当然不是暴力,而是要推式子;不难发现,每个$0$会原序列分割成两个互不相同的子序列,且两部分互不影响,于是我们可以分开考虑;对于一个不包含$0$的一个极大子序列,设其最左区间左端点下标为$......