PACMAN吃毛豆

来源:互联网 发布:win10ssd优化设置 编辑:程序博客网 时间:2024/04/28 12:36

前几天做这个题,由于写的太差了,导致我写了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……

 

附上源代码:

 

 

 

 

原创粉丝点击