gdoi 8.20模拟总结

好久没有做过比赛了耶。。状态不是太好。

一开始看题,看了一下题居然被XC抓去讲题了。。囧。。

第一眼看第一题时以为是道可修改的主席树的裸题,然后继续看第二题。发现没有什么感觉,去看第三题,发现之前做过,但是都忘得差不多了。

然后发现对偶了之后再差分就是比较裸的费用流了。

于是先回去看第一题,发现自己好像读错题了。。。YY了一下,觉得整体二分比较科学,马上就开打了。9点钟左右打完,样例过了,然后对拍,发现居然错掉了。。检查了一下程序,发现没有考虑操作的时间的影响。但是这个问题比较好解决。继续拍,又发现题目问的是第K大。。我的程序打的是第K小。。
然后搞了一下才拍过了。此时已经9点半。。一道水题卡了半个钟。。

因为第二题没有什么思路,于是就去看第三题。但我都差不多忘了怎么转费用流了。。糟糕。。。把图推出来花了好久,一直没有想到一个比较好的解决方法。最后发现再加一条空限制就完美解决了。。然而已经11点。。测了一下大数据,发现卡的不行。。2s根本跑不出来啊。。于是就开始卡常。把spfa换成了dij,然后居然还要手打堆。。不开O2简直坑啊。。就这样一直优化到了11点半,感觉差不多了。随机数据还是能碾过去的。。还是20分钟。。

我第二题还没有做啊~!!!!

赶紧去看了第二题,感觉不可能会做啊。。。什么神题。。。再看部分分,30分简直是送的。。几分钟敲完后就弃疗了。。

最后是100+30+90.、。。最后一题还是被卡了一个点。。

暴露的问题:
1. 比赛时候有点心急,没有按以前的那种得到算法后尽量找自己算法漏洞的方法来做。导致第一题卡了很久。
2. 第二题太早的宣布放弃。其实假如画个图出来的话可能就发现这题其实不难。
3. 有些知识太久没用忘掉了。重新推出来时会花一定的时间。



写个第二题的题解吧。看起来挺不错的这题。

ZJOI2013 蚂蚁寻路

题目大意

在一个n*m 的棋盘上,每个格子有一个权值,初始时,在某个格子的顶点处一只面朝北的蚂蚁,我们只知道它的行走路线是如何转弯,却不知道每次转弯前走了多长。蚂蚁转弯是有一定特点的,即它的转弯序列一定是如下的形式:
右转,右转,左转,左转,右转,右转…左转,左转,右转,右转,右转。
即两次右转和两次左转交替出现的形式,最后两次右转(最后两次一定是右转)后再多加一次右转。我们还知道,蚂蚁不会在同一个位置连续旋转两次,并且蚂蚁行走的路径除了起点以外,不会到达同一个点多次,它最后一定是回到起点然后结束自己的行程,而且蚂蚁只会在棋盘格子的顶点处转弯。
现在已知棋盘大小、每个格子的权值以及左转次数/2 的值,问蚂蚁走出的路径围出的封闭图形,权值之和最大可能是多少

题解

其实你手画一下你就会发现,这只蚂蚁的路线肯定是这样子的
这里写图片描述

也就是说从起点开始,有若干个矩形组成。并且矩形的下端是平齐的。

并且矩形的高度也是一高一低这样子排列的。

总共会有 K2+1 个矩阵,K是读入进来的左转次数/2的值。

那么我们现在就直接把K变成K*2+1.

考虑Dp来解决对于这种形状的最大值问题。


Fi,j,p,h 表示以 (i,j) 为图形的右下角的点的坐标, p 表示当前是第p 个矩形, h 表示我们这个矩形的上端的X 坐标。那么显然 Xi

那么 Fi,j,p,h 的转移其实是非常简单的。

Fi,j,p,h=max(Fi,j1,p,h,Fi,j1,p1,h)+Sum(i,h)(i,j)

对于 max 中的第一项是很好理解的,这表示我们的当前的矩形还在延续。

对于 max 的第二项,这表示我们枚举上一个矩形的上端坐标。
首先 h 是有取值范围的。

p 为奇数,表示当前的矩形是高的,那么上一个矩形就要是矮的。那么
h>h

否则 p 为偶数,表示矩形是矮的,那么上一个矩形就要h<h

并且 h<=i

那么我们可以发现 max 的第二项其实可以不需要枚举 h ,我们只需要维护出一个前缀最大值和一个后缀最大值就好了。

那么计算 F 的复杂度就可以变为O(N2MK)了。

但是空间可能会比较吃紧,但我们注意到 Fi,j,p,h 的转移与 i1 无关,那么我们就不用存第一维了。空间是 O(NMK) 。没有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值