随笔分类 - 网络流 - 最小费用流
摘要:如果做过软件开发,餐巾计划问题的话这题就秒切了. 还是类似的套路:借流思想. 正解的话就是无聊地上一个主席树优化建图就行. 维护一颗边权为正数地主席树,再维护一颗边权为负数的主席树就行. 主席树写了,感觉好恶心...... code: #include <bits/stdc++.h> #define
阅读全文
摘要:这道题正统的做法应该是进行黑白染色(因为我们发现 $x,y$ 满足二分图的性质) 这里写了一个不会证明正确性的解法. 一般来说,这种相消/要求互质什么的一般都要转换成二分图来解决. code: #include <bits/stdc++.h> #define N 20008 #define inf
阅读全文
摘要:和软件安装比较相似的拆点模型. 我们发现,每个点只能经过一次,也就是说每个点最多可以贡献给其他点一次. 然后连边方式和软件安装就几乎是相同的了. code: #include <bits/stdc++.h> #define N 2008 #define inf 10000000 #define ll
阅读全文
摘要:Description Input Output 其实就是给出两颗树,求一种两种树同构的方式,使得不同颜色个数最少$.$树的重新构建,其实就是指定不同的点为根节点$.$ 好在树的重心有一个重要的性质:在一颗树上只有一个/两个点之间又一条边$.$ 我们可以把第一棵树随便一个重心为根,求出每个点为根节点
阅读全文
摘要:题目描述: 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员每天提供一块消毒毛巾,这种消毒毛巾使用一天后必须再做消毒处理后才能使用。消毒方式有两种,A种方式的消毒需要a天时
阅读全文
摘要:对于第一问,跑一遍最大流即可. 对于第二问,在残量网络上的两点间建立边 <u,v>,容量为无限大,费用为扩充费用. 跑一遍最小费用流即可. Code:
阅读全文
摘要:这道题还是很好的. 考察了选手对网络流的理解. 首先,任意两个相邻点之间的运货量时没有限制的. 我们可以将相邻点之间的流量建为无限大,单位费用设为 1,代表运输一个货物需耗费一个代价. 由于题目要求最后所有人的货物量都相同,则说明每个人在最后拥有的货物量一定是总货物量的平均数,我们设为 $w$. 考
阅读全文
摘要:水题. 也难怪,这毕竟是我当年初三的时候刷的题...... #include<cstdio> #include<vector> #include<algorithm> #include<queue> #include<cstring> #include<iostream> using namespa
阅读全文
摘要:水题. 本质上题目要求的是一个包含 $1$,$n$ 的最大环,所以每个点只可以经过一次. 那么就拆点,然后限制每个点的经过次数就行了. #include<cstdio> #include<iostream> #include<algorithm> #include<vector> #include<
阅读全文
摘要:比较简单的费用流. 我们发现题目中有几个性质: 1. 总共走 k 次. 2. 每个格子可以无限经过. 3. 每个格子最多只能贡献 1 次. 根据上述条件,我们就将每个格子进行拆点,拆成入点和出点. 入点向出点连一条 $(1,a[i][j])$ 的边,表示贡献. 入点向出点连一条 $(+\infty,
阅读全文
摘要:题目描述申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。 布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作
阅读全文

浙公网安备 33010602011771号