随笔分类 -  图论 网络流

摘要:题目大意 给出一个或与表达式,每个正变量和反变量最多出现一次,询问是否存在一种方案使得每个或式中有且仅有一个变量的值为1。 解题分析 将每个变量拆成三个点x,y,z。 y表示对应的正变量,z表示对应的反变量。 由S向每个点的x部连一条流量为1的边,表示该变量的某个正变量或反变量的取值为1。 由每个点 阅读全文
posted @ 2017-05-01 00:03 rpSebastian 阅读(313) 评论(0) 推荐(0)
摘要:题目大意 有n种物品,m种建筑,p个人。 n,m,p∈[1,20] 每种建筑需要若干个若干种物品来建造。每个人打算建造一种建筑,拥有一些物品。 主角需要通过交易来建造自己的建筑,交易的前提是对方用多余的物品来换取自己需要的物品。 询问主角是否能建造成功自己的建筑,并给出方案。 解题分析 超级恶心的读 阅读全文
posted @ 2017-04-30 23:45 rpSebastian 阅读(392) 评论(0) 推荐(0)
摘要:Poroblem Redraw Beautiful Drawings (HDU4888) 题目大意 一个n行m列的矩形,只能填0~k的数字。 给定各行各列的数字和,判定有无合法的方案数。一解给出方案,多解输出给定字符串。 解题分析 一个经典的网络流建图。 由S向行连流量为该行数字和的边,由列向T连流 阅读全文
posted @ 2016-07-30 23:27 rpSebastian 阅读(296) 评论(0) 推荐(0)
摘要:Problem Jump (HDU4862) 题目大意 给定一个n*m的矩形(n,m≤10),每个矩形中有一个0~9的数字。 一共可以进行k次游戏,每次游戏可以任意选取一个没有经过的格子为起点,并且跳任意多步,每步可以向右方和下方跳。每次跳需要消耗两点间的曼哈顿距离减一的能量,若每次跳的起点和终点的 阅读全文
posted @ 2016-07-28 21:28 rpSebastian 阅读(459) 评论(0) 推荐(0)
摘要:Problem String problem (HDU5772) 题目大意 给定一个由数字组成的字符串(n<=100),挑选出一些字符组成一个新的字符串。 字符串的价值: sigma w[id(i)][id(j))] (i !=j) id(i)为某字符在原串中的位置,w[][]为给定矩阵。 字符串的 阅读全文
posted @ 2016-07-28 20:24 rpSebastian 阅读(709) 评论(0) 推荐(0)
摘要:Problem A simple brute force problem (HDU 4971) 题目大意 有n个项目和m个问题,完成每个项目有对应收入,解决每个问题需要对应花费,给出每个项目需解决的问题以及各问题间的依赖关系,求最大利润。 解题分析 最大权闭合子图 用来解决一下有依赖关系的问题。 X 阅读全文
posted @ 2016-07-27 21:47 rpSebastian 阅读(364) 评论(0) 推荐(0)
摘要:Problem King's Pilots (HDU 5644) 题目大意 举办一次持续n天的飞行表演,第i天需要Pi个飞行员。共有m种休假计划,每个飞行员表演1次后,需要休假Si天,并提供Ti报酬来进行下一次表演。刚开始拥有k个飞行员。也可以招募飞行员来进行表演(数量无限),需要提供报酬q,在p天 阅读全文
posted @ 2016-07-23 21:19 rpSebastian 阅读(358) 评论(0) 推荐(0)
摘要:Problem Jam's Store (HDU5619) 题目大意 有m个服务员,和n个顾客,给出每个服务员招待每个顾客的时间,每个服务员在同一时间只能服务一个顾客,询问所有顾客完成服务的最少时间。 解题分析 第一反应就是用费用流来做。 题目难度在于每个服务员在同一时间只能服务一个顾客。考虑把每个 阅读全文
posted @ 2016-07-23 10:56 rpSebastian 阅读(197) 评论(0) 推荐(0)
摘要:1 const INF=2000000000; 2 const maxn=4008; 3 var r:array[0..maxn] of longint; 4 eg:array[0..1000008] of record u,v,w,nt:longint; end; 5 el:longint; 6 lt:array[0..maxn] of long... 阅读全文
posted @ 2015-06-12 17:46 rpSebastian 阅读(244) 评论(0) 推荐(0)
摘要:var b,f:array[0..100000] of longint; s,t,i,j,n,m,x,y:longint; l,h:array[0..1000]of longint; a:array[0..1000,0..1000]of longint; procedure bfs; var i,head,tail,x,y:longint; begin fillchar(b,... 阅读全文
posted @ 2015-02-24 10:19 rpSebastian 阅读(172) 评论(0) 推荐(0)
摘要:把所有点拆成两个,将符合条件的两个点x,y连上边,流量为1,费用为-(x+y)。 做一遍最小费用最大流,最后ans div 2即可。 阅读全文
posted @ 2014-11-30 18:49 rpSebastian 阅读(227) 评论(0) 推荐(0)