随笔分类 - 图论——网络流
摘要:"题目" (注意相邻交换指的是八连通) 思路 显然可以将黑白交换看做只有黑色棋子在空棋盘上移动 交换限制交给流量,那么有代价自然就是费用流了 考虑直接将两个相邻格子连起来,由于交换次数是相对单个格子而言的,流量无法确定 既然交换次数是单个格子的属性,自然可以考虑到拆点来表示其属性 考虑将一个格子拆成
阅读全文
摘要:"题目" 本题是 "修车" 的数据加强版 思路 有数量限制和花费,考虑费用流建模 显然,源点连接每个菜,流量为pi,厨师连向汇点,流量为inf 但是菜i和厨师j在不同时间的花费是不同的,具体来说,当它是倒数第k道菜时,它的花费为k×ai,j 将厨师拆点,分
阅读全文
摘要:"题目" 有一棵树,限制从每个点出发的次数最多为ci,对于每个点i,求1到i的路径最多经过多少 次 边,(n≤40000),保证每个点的c大于其入度 解法1 直接莽?拆点,中间连容量为ci费用为0的边,点与点之间连容量为inf费用为1的边,从1到每个点i跑一次最大费用最大
阅读全文
摘要:题意 "题目" 思路 ~~由得到的权值不重复可以看出这是一道最大权闭合子图问题~~ (反正我是没看出来),即最小割 可以看出,如果得到了权值dl,r,可以且必须得到权值dx,y,(l≤x≤y≤r),必须要花费[l,r]这一区间的代价,于是可以得到建图
阅读全文
摘要:题意 "链接" 思路 假的网络流 由于无法直接储存油量这个状态,加上k很小,可以把原图分层,分为k+1层图,分别表示当前油量为0~k 连边 1. 对于满油的第k层,连给四个方向,如果向回走了权值为B,否则为0,表示走一步 2. 对于非满油层,如果当前点是加油站,那么它只有一条指向第k层对应点的边,权
阅读全文
摘要:题目 "链接" 思路 1. 洗了的餐巾+买的餐巾=用的餐巾=r[ i ],洗的餐巾一定会用(废话) 2. 第i天用的餐巾可以通过清洗操作给之后i+快洗,为了减少连边的数量,可以通过延期,让餐巾当它到要用的那天之前再洗 连边 1. 左边的一排xi表示到今天为止有的脏餐巾数(可以将脏餐巾转移到之后
阅读全文
摘要:题意 给定n个实验,m个机器,选一个实验得到ai价值,选一个机器有bi代价,每一个实验必须要某些机器参与才能进行,问获得的最大价值 思路 对于每一个实验,分为两种选择: 1. 选取这个实验,那么必须选取其对应的所有机器 2. 不选这个实验,那么其对应的机器只受到其他实验选择的影响 也就是说在实验和机
阅读全文
摘要:本文仅仅记录做法或代码,至于标准证明等并不会出现(反正也是给自己看的qwq) 网络最大流 最小费用最大流 仅仅只是将bfs变为spfa,但是将原来的多路增广又打回单路增广 无源汇上下界可行流 需要保证每个点都有入度和出度才可以回环往复保证流量守恒 先将每条边流量初始赋值为下界,然后问题就是有些点不遵
阅读全文
摘要:"链接" 题意:给定一些数,每个数可以叠在前面某一堆上面(需要满足与最上面那个成完全平方),也可以自成一列,堆数有限定,求最多的球数 做法: 网络最大流(二分图匹配) 从上面的题意整理出这样的情况: 1.一个球可以找到一个比它小的数匹配,则由这个数连向那个小的数 2.也可能一枝独秀,建立一个新堆 每
阅读全文
摘要:"链接" 题意:走迷宫问题,从(1,1)到(n,n)的最短时间,其中有墙,钥匙和门的设定。 做法: 广度优先搜索+钥匙串状态压缩 Q:可这和网络流有什么关系 A:标签:网络流24题,没了 UGLY Code: include define N 200 using namespace std; int
阅读全文
摘要:"链接" 题意:给定n个数,每个数的使用有一定限制,使用这个数后通过异或运算做出贡献,按照一定顺序使用,使全部为1的一个二进制数变为全0 做法: 异或最短路 首先对于一个软件补丁,它的约束和作用可以分别用两个数来表示(有、无),然后由于要达到目的地并且求最大值,很容易想到最短路 Code:(老婆饼中
阅读全文
摘要:"链接" 题意:使n个仓库的库存量达到平衡所需最小代价,其中移动只能发生在相邻仓库(1,n也看做相邻) 做法: 最小费用最大流(~~环分纸牌贪心~~) 先求出平均值,比它大的仓库提供货物,与源点相连,容量为(库存量 平均值);对于比它小的仓库,需要接受货物,所以与汇点相连。另外,对于相邻的仓库,互相
阅读全文
摘要:"链接" 题意:二分图模板 Code(匈牙利算法) cpp include define N 205 using namespace std; int n,m,ans; int link[N][N]; int match[N],book[N]; template void read(T &x) {
阅读全文