![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
luoyuef
这个作者很懒,什么都没留下…
展开
-
方格取数加强版
给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来,该格子的数就变成0,这样一共走K次,现在要求K次所达到的方格的数的和最大 输入格式: 第一行两个数n,k(1<=n<=50, 0<=k<=10) 接下来n行,每行n个数,分别表示矩阵的每个格子的数 输出格式: 一个数,为最原创 2017-11-29 08:06:52 · 351 阅读 · 0 评论 -
试题库问题
双倍经验题。。 假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。从n道题里选m个题。m个题是由k种题组成的,k种题每种选n道都告诉你了。 每道题只能选一次,所以容量限制为1,一共选m道 流向t的流量就应该是m。 m流量由k种题提供,k种题容量为他们选的次数。 如果一原创 2017-11-25 00:16:42 · 678 阅读 · 0 评论 -
狼抓兔子
天天爱跑步这道题。有点丧心病狂。。为什么会出现在NOIP里呢。。。先讲部分分: 对于前25分 瞎暴力即可。 对于Si=1的20分: 我们发现Si=1时,对于在点i的观察员。 深度为dep[i],出现时间为w[i]。因为所有的点都是由上到下的,所以只有S在上面时才会对点i贡献。 会对i造成贡献的点S: dep[i]-w[i]=dep[S]。而所有的点S都为1。 得到恒等式:dep[i]-w原创 2017-12-21 20:03:25 · 457 阅读 · 0 评论 -
星际转移问题
由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。现有 n 个太空站位于地球与月球之间,且有 m 艘公共交通太空船在其间来回穿梭。每个太空站可容纳无限多的人,而每艘太空船 i 只可容纳 H[i]个人。每艘太空船将周期性地原创 2017-12-05 09:25:13 · 526 阅读 · 0 评论 -
最长递增子序列
给定正整数序列 x1∼xn,以下递增子序列均为非严格递增。1.计算其最长递增子序列的长度 s 。 2.计算从给定的序列中最多可取出多少个长度为 s 的递增子序列。 3.如果允许在取出的序列中多次使用 x1 和 xn,则从给定序列中最多可取出多少个长度为 s 的递增子序列。开心~这题想了一下一遍很轻松的A了。第一个问题,最长不上升子序列 普及组难度的DP应该不用讲吧? 第二个问题,取出就不能用原创 2017-12-06 20:47:56 · 422 阅读 · 0 评论 -
运输问题
水一道题,这题不是一眼秒的嘛。。最小费用+最大费用流。 S连仓库,商店连T。 中间连INF的,费用就是c。。。代码懒得写qwq。原创 2017-12-07 08:32:39 · 511 阅读 · 0 评论 -
负载平衡问题
G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。输出最少搬运量。看到题按样例人脑CPU模拟了一下。。怎么搬到一样呢。。突然发现自己傻傻哒。。数量相同肯定就是求一个Σ然后算一下平均数。之后怎么办呢。。贪心?只能相邻搬运所以贪心显然是错的。然后。。我又灵光一现(最近做题状态好棒啊)。对于原创 2017-12-07 09:50:19 · 915 阅读 · 0 评论 -
深海机器人问题
这题的题面描述。。有点问题。。坐标写的很乱。 这道题其实和著名DP问题方格取数很像qwq 我们发现机器人可以重复经过边,但只能对答案贡献一次,所以两点间连两条边。一条是容量1带的费用。 另一条没费用容量INF。用拆点吗?不用的。因为这个权值是走过边会有,所以这题中不用拆点。起点连S容量机器人,终点连T容量机器人。注意算好点的坐标别发生计算错误调半天这样的傻事qwq。#include<bits/原创 2017-12-07 11:50:54 · 224 阅读 · 0 评论 -
数字梯形
给定一个由 n 行数字组成的数字梯形如下图所示。梯形的第一行有 m 个数字。从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。 分别遵守以下规则: 1.从梯形的顶至底的 m 条路径互不相交; 2.从梯形的顶至底的 m 条路径仅在数字结点处相交; 3.从梯形的顶至底的 m 条路径允许在数字结点相交或边相交。这道题是个费用流,刚开始在考原创 2017-11-28 13:39:39 · 1692 阅读 · 0 评论 -
BZOJ2095 bridge
题意: 给出一个n个点m条边的无向图,每个边有一正一反两个权值; 现要从点1出发,对每条边经过且仅经过一次; 求一种方案使经过的最大权值最小;输入:第一行为两个用空格隔开的整数n(2<=n<=1000),m(1<=m<=2000),接下来读入m行由空格隔开的4个整数a,b(1<=a,b<=n,a<>b),c,d(1<=c,d<=1000)最大权值最小,可以二分转换为判定性问题。 这样问题就转原创 2017-12-25 15:43:06 · 164 阅读 · 0 评论 -
小行星
整理一下最近做过的题。从后往前发好了。星云中有n颗行星,每颗行星的位置是(x,y,z)。每次可以消除一个面(即x,y或z坐标相等)的行星,但是由于时间有限,求消除这些行星的最少次数。突然发现自己不会最小割= =。考虑一下二维的情况,把坐标拆开,一对坐标连边跑最大流。 为什么是对的。代价->次数->割掉一条边。割边后的S集T集是都消除过的,所以最小割即为答案。三维情况如上法把x,y,z相连发现y会重原创 2018-01-15 16:48:51 · 241 阅读 · 0 评论 -
善意的投票
幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉。对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数。 我们的问题就是,每位小朋友应该怎样投票,才能使冲突数最小? 输入格式: 文件的第一行只有两个整数n,原创 2018-01-15 16:51:42 · 135 阅读 · 0 评论 -
[SCOI2007]蜥蜴
在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后其他蜥蜴不能落脚。任何时刻不能有两只蜥蜴在同一原创 2018-01-15 17:03:28 · 116 阅读 · 0 评论 -
BZOJ3894:文理分科
https://blog.csdn.net/PoPoQQQ/article/details/43968017求最大收益->总收益-最小的丢失->最小割。 对于直接选文理很简单,直接把点分别连 S,TS,TS,T容量分别是文理愉悦度就好了。 然后如何解决相邻相同的问题呢。我们可以考虑抵消的思想。被割开的是不选的科。直接选文理的残量网络是什么样的? 是选那科多出来的收益。如果这些...原创 2018-04-12 11:17:28 · 254 阅读 · 1 评论 -
圆桌聚餐
题目复制过来有毒所以点这里传送门这道题是问有没有方案并输出方案。 题目中有几个元素—— 人和桌子。并且相同的人不能去同一张桌子,每个桌子最多有一个相同的人,所以每种人和桌子的容量是1,每个桌子最多承载量,一共多少人。我们要把人放到桌子里。所以S连不同的人,容量就是那种的个数。 每种人可以到不同桌子,容量为1。 每个桌子都可以提供容量,连入汇点T。那么这道题就解决啦~方案数就按二分图的打印就好了原创 2017-11-24 22:11:28 · 352 阅读 · 0 评论 -
魔术球问题
假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,…的球。 (1)每次只能在某根柱子的最上面放球。 (2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在n根柱子上最多能放多少个球。例如,在4 根柱子上最多可放11 个球。 «编程任务: 对于给定的n,计算在n根柱子上最多能放多少个球。 输入格式: 第1 行有1个正整数n,表示柱子数。原创 2017-11-24 14:28:32 · 243 阅读 · 0 评论 -
航空路线问题
题目描述 给定一张航空图,图中顶点代表城市,边代表 2 城市间的直通航线。现要求找出一条满足下述限制条件的且途经城市最多的旅行路线。 (1)从最西端城市出发,单向从西向东途经若干城市到达最东端城市,然后再单向从东向西飞回起点(可途经若干城市)。 (2)除起点城市外,任何城市只能访问 1 次。 对于给定的航空图,试设计一个算法找出一条满足要求的最佳航空旅行路线。 输入格式: 第 1 行有原创 2017-12-04 09:58:37 · 885 阅读 · 0 评论 -
餐巾计划问题
一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,…,N)。餐厅可以从三种途径获得餐巾。 (1)购买新的餐巾,每块需p分; (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f<p)。如m=l时,第一天送到快洗部的餐巾第二天就可以使用了,送慢洗的情况也如此。 (3)把餐巾送到慢洗部,洗一块需n天(n>m),费用需s分(s<f)。 在每天结束时,餐厅必须决定多少块用过的餐巾送到快原创 2017-11-29 15:02:24 · 435 阅读 · 0 评论 -
分配问题
有 n 件工作要分配给 n 个人做。第 i 个人做第 j件工作产生的效益为 cij。试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大。费用流裸题,跑一遍最大费用最大流,跑一遍最小费用最大流,比较裸。#include<bits/stdc++.h>using namespace std;const int MAXN=2e5+5;const int INF=1e9;cons原创 2017-11-29 18:19:35 · 519 阅读 · 0 评论 -
方格取数问题
在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘,按照取数要求编程找出总和最大的数。输入格式: 第 1 行有 2 个正整数 m 和 n,分别表示棋盘的行数和列数。接下来的 m 行,每行有 n 个正整数,表示棋盘方格中的数。 输出格式: 程序运行结束时,将取数的最原创 2017-11-30 09:33:26 · 487 阅读 · 0 评论 -
骑士共存问题
在一个 n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示。棋盘上某些方格设置了障碍,骑士不得进入 对于给定的 n*n 个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击输入格式: 第一行有 2 个正整数n 和 m (1<=n<=200, 0<=m原创 2017-11-30 14:06:51 · 318 阅读 · 0 评论 -
火星探险问题
这道题不就是一个拆点后的少连边输出方案的方格取数嘛。方案可以用栈来输出。 但,我真的不知道为什么一直是83分。LOJ还炸了看不到哪里错。。。 我真的找不出错啊。。。#include<bits/stdc++.h>using namespace std;const int MAXN=7e5+5;const int base=3e5;const int INF=1e9+7;struct edge原创 2017-12-08 13:38:04 · 759 阅读 · 0 评论 -
网络流学习笔记(1)
概念性的东西:http://www.cnblogs.com/SYCstudio/p/7260613.html 我们如果求一个流量网络中的最大流量,根据增广路定理(上面博客里有)就是一遍遍dfs来找增广路。不存在增广路时删掉的就是最大流量。 (如何提高效率?) Dinic算法是不停用BFS构造层次图,然后用阻塞流增广。 什么叫层次图呢?假设在残量网络中,起点到结点u的距离为dist(u),那原创 2017-11-22 20:45:57 · 150 阅读 · 0 评论 -
网络流学习笔记(2)
最小费用最大流:在保证最大流的前提下,让费用最小。 我们有两种思路: 1.先保证流最大,再去找费用最小的。 2.保证费用最小,去找最大流。 通常情况下我们会选择第二种。我们想一下最大流是怎么做的,bfs分层图然后dfs每次只找深度+1的去增广。 如果我们要保证最小费用呢?每次去找费用最小的增广。 我们可以SPFA先处理出最小费用以及到那个节点的边。(pre)。 增广时按这些边去处理残量原创 2017-11-23 10:09:43 · 139 阅读 · 0 评论 -
二分图匹配学习笔记(网络流)
之前学二分图写的匈牙利qwq,现在学完网络流回去写。。觉得比匈牙利好理解多了啊qwq。 建一个虚拟源点和虚拟汇点,连边权为1的边。然后算最大流。 以下代码为输出方案版:#include<bits/stdc++.h>using namespace std;const int MAXN=1e5+5;const int INF=1e7;struct edge{ int to,next,w,原创 2017-11-23 14:18:48 · 310 阅读 · 0 评论 -
酒店之王
题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化。由于很多来住店的旅客有自己喜好的房间色调、阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只有固定的q道不同的菜。 有一天来了n个客人,每个客人说出了自己喜欢哪些房间,喜欢哪道菜。但是很不幸,可能做不到让所有顾客满意(满意的条件是住进喜欢的房间,吃到喜欢的菜)。 这里要怎么分配,能使最多顾客满意呢? 输入格原创 2017-11-23 15:55:05 · 186 阅读 · 0 评论 -
太空飞行计划问题
https://www.cnblogs.com/zhenghaotian/p/6929083.html上面博客写的特别特别特别明白(然而这道题读入特别麻烦)。我就偷个懒不写代码了qwq。。 对于最大权闭合子图,我们求最大权可以转化为网络流上的问题。原创 2017-11-23 20:45:51 · 375 阅读 · 0 评论 -
网络流杂题
美食节 动态加边的思想很棒qwq,我们SPFA的时候有的点显然用不到的(费用大不会增广)所以先不加这些边。 然后就是。。洛谷这题。。卡常数,有2个点不开O2我卡不进去啊qwqwq#include<bits/stdc++.h>using namespace std;const int MAXN=1e7+5;const int INF=1e9+7;struct edge{ int u,t原创 2017-12-20 15:09:20 · 158 阅读 · 0 评论 -
[ZJOI2010]网络扩容
题目描述 给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。输入格式: 输入文件的第一行包含三个整数N,M,K,表示有向图的点数、边数以及所需要增加的流量。 接下来的M行每行包含四个整数u,v,C,W,表示一条从u到v,容量为C,扩容费用为W的边。输出格式:原创 2017-12-20 18:51:55 · 201 阅读 · 0 评论 -
最小路径覆盖问题
一个DAG里,我们可以把每个点拆成出点和入点。这样就变成了一个二分图。//不存在奇数环的图都可以转换为二分图。 然后说几个定理:二分图中最小点覆盖=最大匹配。这个想一下就知道了,在最大匹配中每组匹配选一个点就最小点覆盖了。 DAG最小路径覆盖=顶点数-最小点覆盖(最大匹配)。 然后我们就可以把这道题转化成二分图跑网络流。因为一个点在这题中只能出一次入一次。所以S和T连得出点和入点都是容量为1的原创 2017-11-24 09:55:33 · 180 阅读 · 0 评论 -
Bird
有一棵 nnn 个点的树。iii 的父亲为 ⌊i/2⌋⌊i/2⌋ \lfloor{i/2\rfloor}。(i>=2)(i>=2)(i>=2) 每个点有一个承载上限,给出mmm个点的位置。 输出前 iii个点 (1<=i<=m)(1<=i<=m)(1n,m<=3∗105n,m<=3∗105n,mSSS 连初始位置容量为初始点个数费用0,每个点连 ...原创 2018-04-12 16:44:20 · 223 阅读 · 0 评论