PACMAN吃毛豆

前几天做这个题,由于写的太差了,导致我写了9个版本,直到最后一个才过掉……

 

数一下我的几个版本:

ver1:考试时写出的第一版,用的是一个动态规划思想,但是调不对,放弃……

ver2:考试时写的第二版,用网络流建模,建模方法:若从i能到j,就从i向j连一条费用为-1,容量为1的边。每个点向汇连一条容量为1、费用为0的边,源向每个点连一条费用为-1、容量为1的边,超级源向源连一条费用为0、容量为2的边,求超级源到汇的费用流。WA掉。

ver3:看了解题报告后写的一个版本,改了建模方法,拆点,若从i能到j,就从i+n向j连一条费用为0,容量为1的边。i向i+n连一条费用为-1、容量为1的边,其余相同。

ver4:改了费用流算法,由原始对偶转为isap增广。

ver5:又改了费用流算法,转为push-relabel增广。

ver6:还改费用流算法,直接spfa增广。

ver7:骗分策略,先求一条最长上升子序列,再在这条线左右分别求一条,WA掉。

ver8:回归最大流,直接手动增广,先求一条最长上升子序列,模拟费用流增广,直接构图,不含0边,然后用spfa求最短路,用的ver2的构图方式,WA掉。

ver9:改变构图,用ver3的构图,终于AC……

 

附上源代码:

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值