PKU 3422 &&PKU 2135 &&ZJU 3308

三题属于同一类型的题,即最小费用流问题。。

PKU http://acm.pku.edu.cn/JudgeOnline/problem?id=3422

题意:给定一个矩阵,从[1][1]—>[n][n]走k次所能得到的最大值;

建图:把一个点Q,val[i][j]拆成两个点,Q`,它们之间连线,流量为1,费用为val[i][j];

        Q`与右边和下边的两个点连线构图,然后增加一个超级源点s,超级汇点t,连s->0,Q`(val[i][j])—>t,流量为k,费用为0;

也可以视为控制增光次数的费用流。。。

代码:

 

PKU http://acm.pku.edu.cn/JudgeOnline/problem?id=2135

题意:给定一个无向图,设1为起点,n为终点,求从1到n然后从n返回1的一个最小环,并且每次不能走重复边;

很显然这是球一个最小环,节点数之多,用Floyed是求最小环是不明智的,那么可以视为费用流的问题解决;

建图:把每个点拆成两点建成有向图,然后增加一个超级源点s,和一个超级汇点t,s连接1,流量为2,费用为0,n连接t流量为2费用为0;

代码:

 

 

ZJU http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3308

题意:国际象棋中,棋盘是黑白相间的格子组成,有些黑色格子上有金骑士,银骑士,铜骑士,每个骑士的走法和中国象棋的马走法一样,但是每个骑士的移动会消耗能量,金骑士移动一下消耗的能量为两个格子能量的最大值,银骑士消耗的能量为最格子能量的和,而铜骑士消耗的能量为两个能量的乘积,并且每个骑士最多可以移动一次,每个格子上最多只能有一个骑士,问:

能不能找到这样的一种是消耗能量最少的方法,要是能找到输出最小值;

要是不能输出“-1”;

黑白色建图;增加一源点s,汇点t,超级源点ss,超级汇点tt,ss->s,t->tt,流量为k,费用为0;

代码:

         

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值