自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蒟蒻柴犬首相的博客

蒟蒻柴犬首相的博客

  • 博客(18)
  • 收藏
  • 关注

原创 [网络流24题]负载平衡问题 (费用流)

题目描述G公司n个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。 输入输出格式 输入格式: 文件的第1 行中有1 个正整数 n ,表示有 n 个仓库。第 2 行中有 n 个正整数,表示 n 个仓库的库存量。 输出格式: 输出最少搬运量。题解很明显,题目中要求运送的货物最少,我们...

2018-07-28 15:55:43 267

原创 poj3422 卡卡的矩阵旅行(费用流)

题意做过过河卒(一取方格数)、传纸条(二取方格数),我们这里来安利K取方格数。 也就是给出一个方阵,大小为n×nn×nn\times n 每一个格子都有一个权值。 我们需要从左上角到右下角取nnn条路径。每一条路径都会取掉当前方格内的数。多条路径通过同一个位置的话,这个位置的数只取一次。 要求最大化k条路径取到的数之和。题解由于每一个点的数只能被取一次,但是可以被走过多次。...

2018-07-21 18:42:42 271

原创 网络流小结

网络流建模建模的条件是根据限制性条件连边。 对于每条边的限制性条件用容量来限制; 对于每个点的限制性条件用拆点之后连自边来限制。网络流算法EK算法 Dinic算法 二分图的匈牙利算法 EK+SPFA费用流算法 ZKW费用流(等待填坑)写网络流的注意点数组大小问题邻接表从0开始,头结点数组填满-1.调不出来了就重敲。区分算法建模很重要!!!...

2018-07-21 14:38:47 165

原创 费用流模板——EK+SPFA实现的最小费用最大流

算法原理用两个字的高度概括——贪心~ 用一句话的概括:每一次通过spfa找到花费最小的可行流,然后进行增广,直到残量网络中,源点不能达到汇点。 其实还是通过代码理解比较好。code这里1是源点,n是汇点。 每次的读入四个数:有向边的两个结点+容量+费用#include<bits/stdc++.h>using namespace std;inline i...

2018-07-21 09:54:12 699

原创 bzoj1711 [Usaco2007 Open]Dingin吃饭 poj3281 Dining

题面Description 农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食. 每一头牛只喜欢吃一些食品和饮料而别的一概不吃.虽然他不一定能把所有牛喂饱,他还是想让尽可能多的牛吃到他们喜欢的食品和饮料. 农夫JOHN做了F(1<=F<=100)F(1<=F<=100)F (1 D(1<=D<=100)D(1<=D<=100)D (1 N(1&...

2018-07-14 13:59:32 233

原创 奶牛的聚会(最大流)

题面题目描述 N(3<=N<=200)头奶牛要办一个新年晚会。每头牛都会烧几道菜。一共有D(5<=D<=100)道不同的菜肴。每道菜都可以用一个1到D之间的数来表示。 晚会的主办者希望能尽量多的菜肴被带到晚会,但是每道菜的数目又给出了限制。每头奶牛可以带K(1<=K<=5)道菜,但是必须是各不相同的(例如,一头牛不能带三块馅饼,但是可以带上一块馅饼,一份面...

2018-07-14 09:38:18 1312

原创 bzoj1693 Asteroids(二分图最小顶点覆盖)

题目大意n * n矩阵有K个点,第i个点的坐标为(Xi,Yi)。每次可以把某行或者某列删掉。问至少需要多少次可以把K个点都删掉。 (n≤500n≤500n\leq 500)题解每一行每一列都建点,然后对于每一个坐标(Xi.Yi)(Xi.Yi)(X_i.Y_i)都建一条从Xi到YiXi到YiX_i到Y_i容量为1的边。 然后就是二分图的最小顶点覆盖了。 可以证明最小顶点覆盖=最小割...

2018-07-13 20:15:35 286

原创 POJ1149 养猪(最大流)

题面(来源于HLOJ)题目描述 尼克在一家养猪场工作,这家养猪场共有M间锁起来的猪舍,由于猪舍的钥匙都给了客户,所以尼克没有办法打开这些猪舍,客户们从早上开始一个接一个来购买生猪,他们到达后首先用手中的钥匙打开他所能打开的全部猪舍,然后从中选取他要买的生猪,尼克可以在此期间将打开的猪舍中的猪调整到其它开着的猪舍中,每个猪舍能存放的猪的数量是没有任何限制的。买完猪后客户会将他打开的猪舍关上。 ...

2018-07-13 16:02:36 658

原创 【网络流24题之一】飞行员配对问题+求方案(匈牙利算法求二分图最大匹配)

题面题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一...

2018-07-10 21:18:34 315

原创 【网络流24题之一】飞行员配对问题+求方案(网络流dinic算法求二分图最大匹配)

题面题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干名英国飞行员很好地配合。如何选择配对飞行的飞行员才能使一次派出最多的飞机。对于给定的外籍飞行员与英国飞行员的配合情况,试设计一...

2018-07-09 21:24:48 477

原创 二分图判定+noip2010关押罪犯

判定定理如果一个无向图中存在奇环,那么它不是二分图。判定方法所以我们采用染色法,对于一个点染色A,相邻的点染色B,再相邻的点染色A……一直下去,如果不存在奇环,那么一定不会发生冲突(比如你想对一个点染B,但是在你本次搜索之前已经搜索到它了,并且对这个点染了A)。伪代码这里给出深度优先搜索实现的染色,广度优先搜索的可以自行思考,原理一样,很简单。dfs(u,col...

2018-07-09 16:02:37 181

原创 最小割

定义网络的割:对于一个网络,存在一个边集,满足:删除这些边之后使得原网络不再连通。S-T割:首先是一个网络的割,然后满足源点和汇点在两个不同的连通块里面。最大流=最小割先证明任意割>=任意流 - 最小割中,源点s在的集合记作S,汇点t在的集合记作T,那么在原网络中存在这些边:从S出发指向T。 - 这些边一定不存在前驱后继的关系 - 那么这些边的流量之和&lt...

2018-07-08 18:39:01 3610

原创 最大流算法之三——Dinic算法的优化——当前弧优化

当前弧优化我们通过上一篇博客 传送门 知道,每一次bfs之后都跟着若干次dfs。每一次dfs都会发现一条可行流,而且这个可行流肯定是该路径的最大可行流。所以我们对于一条路径进行增广之后,肯定不用进行第二次增广。 所以我们这里加了一个优化,在同一个 bfs分层后跟着的dfs里面,加入要 遍历编号为1、3、5、7、9的五条边,我们默认cur[i]=1cur[i]=1cur[i]=1,然后...

2018-07-08 15:19:29 1623

原创 最大流算法之二——Dinic算法

Dinic是优化的EKDinic算法的流程是,每次寻找可行流路径的时候都先通过一次bfs给原网络分层(如果不能分层,那么已经是最大流网络了),再通过dfs给分层后的网络找可行流路径(这时候不是仅仅找一条,二十一次dfs可以找许多条可行流)。 (图片来源:https://www.cnblogs.com/LUO77/p/6115057.html)这里六张图是在若干次寻找增广路之后的中间形态。...

2018-07-08 14:59:56 441

原创 最大流算法之一——EK算法

EK算法流程EK算法的流程很简单:随意找一个可行流作为流量网络更新的基础(一般题目没有规定可以采用流量为0的可行流)利用bfsbfsbfs找一条从源点到汇点的可行流路径用新找到的可行流路径更新原有流量网络:先找到该可行流路径中流量最小边,然后将该路径上所有正向边都减去该最小边的流量,反向边都加上该最小边的流量(想想,为什么要设反向边)不断重复2和3两个步骤,直到在第2步的时候找不到...

2018-07-07 16:14:00 3403

原创 poj3263 Tallest Cow

题目大意一群奶牛排成一排。他们身高不同。 现在我们知道:有n头奶牛,第I头的身高最高,为h。 下面给出m组关系,每组关系包含两个数,表示这两个数代表的奶牛可以相互看到(两头奶牛之间的所有奶牛都比这两头奶牛矮才能相互看到) 题目要求我们给出所有n头奶牛的可能最大身高。题解我们这里采用差分。 差分数组先初始化0. 既然两头奶牛相互看到是因为他们之间的所有奶牛的身高都比他们矮,...

2018-07-07 10:42:29 376

原创 bzoj1218 [HNOI2003]激光炸弹

题面题解从学考回归oi第二题。。 复习二维前缀和。#include<bits/stdc++.h>using namespace std;inline int read(){ int num=0;char c=' ';bool flag=true; for(;c>'9'||c<'0';c=getchar()) if...

2018-07-07 10:01:52 495

原创 poj1958 Strange Towers of Hanoi

题目大意根据经典的汉诺塔问题改编而来。 汉诺塔(带过程的)题解原汉诺塔我们设d[i]d[i]d[i]为把iii个盘子转移的步数。 我们称使用三个塔的转移称为三塔模式。 因为当i>=2i>=2i>=2的时候,二塔模式无解,所以我们对iii个盘子转移的时候,只能分为1和i−11和i−11和i-1两个部分。 所以我们可以模拟: 从AAA柱子三塔模式下转移i−...

2018-07-06 14:39:02 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除