codeforces 724D

[n个城市每个城市有一个特产的产出,一个特产的最大需求。当i<j时,城市i可以运最多C个特产到j。求所有城市可以满足最大的需求和]

[如果直接最大流建图显然会T。考虑将最大流问题转换为最小割。每个城市会被划分到S集或者T集。]

[另dp[i][j]表示前i个城市有j个城市在S集的最大和。

dp(i, j) = min(dp(i - 1, j - 1) + si, dp(i - 1, j) + pi + j * c).

[将网络流转化为最小割,并用DP加以解决]

HDU 4971

[经典题变形: 有n个项目有收益,m个投资有花费。每个项目需要完成若干个投资,同时投资直接也有依赖关系]

[我们可以将收益先取走,将收益也转化为花费。S向项目连边,投资向T连边,流量都是对应花费。依赖关系的流量为INF。最小割即为答案]

Codechef SPCLN

[n个发射器,m个陨石。每个发射器可以打一些陨石并有收益。陨石被打直接有依赖关系,n个发射器依次发射。求最大收益]

[每个陨石用n+1个点的链表示,流量依次为每个发射器的花费(那个陨石拿100收益,多出来的为花费),如果打不了就是INF。S连向第一个点,最后一个点连向T。陨石i依赖j,则在i的链的第k个连向j的链的k+1,流量为INF,最小割为答案]

[观察上面两个问题的特点。]

[1.有花费也有收益。对于收益,我们应该将其转化为花费以便最小割问题解决。单个物品的转换比较简单,先获得收益,再把收益变为花费。多个物品的转换,可以选择一个足够大的值获得,再把这个值减去收益变为花费。]

[2.有依赖关系。在还有收益的模型里依赖关系非常好理解,如果你想要获得这个好处,你必须blabla…。但应该我们将收益转化为花费,依赖关系就会变为这几个代价,你至少要挑一个承受。]

[由1,2。我们得到一个一般的最小割建模思路。首先将问题转换成若干个事件,每个事件有一个花费。有一些事件间的关系,每一个关系可以表述为:这些事件必须至少发生一件,或者,这些事件不能全不发生。于是我们可以用边刻画事件,流量为费用,如果不能发生就是INF。每一个关系我们将这些事件从S连到T。为了刻画关系更加方便,用INF的边单纯表示事件的连接,分为或连接和蕴含连接。或连接的实际意义是如果该连接之前的事件没有发生,则之后必须发生一件。蕴含连接的实际意义是如果该连接之前的事件发生,则之后得事件也要发生。两种连接的方式分别是尾连头,头连头]

[经过总结,我们得出一个结论。什么样的问题可以用最小割解决呢?逻辑上只包括或关系或者蕴含关系]

漫话最小割 part1的更多相关文章

  1. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

  2. BZOJ-2127-happiness(最小割)

    2127: happiness(题解) Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1806  Solved: 875 Description 高一 ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. BZOJ3438 小M的作物(最小割)

    题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=3438 Description 小M在MC里开辟了两块巨大的耕地A和B(你可以认为 ...

  5. 最大流-最小割 MAXFLOW-MINCUT ISAP

    简单的叙述就不必了. 对于一个图,我们要找最大流,对于基于增广路径的算法,首先必须要建立反向边. 反向边的正确性: 我努力查找了许多资料,都没有找到理论上关于反向边正确性的证明. 但事实上,我们不难理 ...

  6. bzoj1412最小割

    太羞耻了,m n写反了(主要是样例n m相等) 建图方法比较高(ji)端(chu),对于可以加栅栏的地方连上1的边,然后求最小割即可 为了让代码优(suo)美(duan),我写了一个check,避免多 ...

  7. 【BZOJ1497】[NOI2006]最大获利 最小割

    裸的最小割,很经典的模型. 建图:要求总收益-总成本最大,那么将每条弧与源点相连,流量为成本,每个收益与汇点相连,流量为收益,然后每条弧与它所能到达的收益相连,流量为inf. 与源点相连的是未被选中的 ...

  8. 二分图&网络流&最小割等问题的总结

    二分图基础: 最大匹配:匈牙利算法 最小点覆盖=最大匹配 最小边覆盖=总节点数-最大匹配 最大独立集=点数-最大匹配 网络流: 技巧: 1.拆点为边,即一个点有限制,可将其转化为边 BZOJ1066, ...

  9. CQOI 2016 不同的最小割

    题目大意:一个无向图,求所有点对不同的最小割种类数 最小割最多有n-1个,这n-1个最小割构成一个最小割树 分治法寻找n-1个最小割.对于当前点集X,任选两点为ST做最小割,然后找出与S相连的所有点和 ...

随机推荐

  1. 【整理】C#文件操作大全

    文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. msdn:http://msdn.microsof ...

  2. Bootstrap历练实例:基本按钮组

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  3. java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)

    SWT成功激活后 new一个JDialog 调整到Design视图 默认的视图模式是BorderLayout,无论你怎么拖拽,只能放到东西南北中的位置上 所以,我们把视图模式调整为AbsoluteLa ...

  4. UIViewAnimationOptions

    常规动画属性设置(可以同时选择多个进行设置) UIViewAnimationOptionLayoutSubviews:执行UIView动画时,自动更新Subview的Layout约束.. UIView ...

  5. json 将key值以字符串形式取出

    int GetJsonCString(const Json::Value& value, char* str, int n){ if (!value.empty() && va ...

  6. HashMap允许将null用作键 也允许将null作为值

    HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null. 与之对应的是Hashtable,(注意大小写:不是HashTable),Hashtable不能将键和值设 ...

  7. ccf_201712-2

    题目 问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向. 游戏开始,从1 ...

  8. Django模型中字段属性choice的使用

    根据Django官方文档: from django.db import models class Student(models.Model): FRESHMAN = 'FR' SOPHOMORE = ...

  9. HUAWEI交换机配置telnet登录

    Huawei交换机配置Telnet登录 一,交换机开启Telnet服务 <Huawei>system-view                                        ...

  10. axure笔记--内部框架交互链接

    内部框架的作用: 1.可以引用站点地图的页面 2.可以引用视频(链接视频)(axure中没有媒体控件) 3.可以引用本地文件 4.引用网页(注意:1.超链接地址要加上http://   2.内部框架大 ...