线性数据结构优化——POJ3709.ppt

一个N行M列的矩阵,矩阵中的某些方格上堆放了一些家具,其他的则是空地。有一台钢琴在初始位置(x0,y0),并且可以在空地上滑动,但不能撞上家具或滑出舞厅 。每个时刻,钢琴都会随着船体倾斜的方向向相邻的方格滑动一格,相邻的方格可以是向东、向西、向南或向北的。可以在某一时刻对钢琴施加魔法,这样在这一时刻,钢琴就会停留在原地不动。现在知道每一时刻钢琴将要往什么方向移动,请你安排施加魔法的时间,使得钢琴移动的总距离最长。 我们对钢琴的移动趋势是按时间的区间来描述的,且从1开始计算时间,比如“在[1, 3]时间里向东移动,[4, 5]时间里向北移动”, 一共有K个时间区间。(N,M=200,K=200) 瑰丽华尔兹(NOI2005) 设F(i,x,y)表示保证“第i段时间区间结束后,钢琴停在坐标(x,y)”的情况下,最长能进行的滑动距离。并且定义:T(i)表示第i段时间区间的长度,D(i)表示第i段时间区间内的风向,1表示东,2表示西,3表示南,4表示北。F的转移方程是: 转移条件: 每个时间单位最多滑动一格,也就是滑动距离不能超过T(i),s=T(i)。 若在D(i)的反方向上(因为我们这里是利用前面的结果倒推,所以是反方向),离(x,y)最近的障碍物距离为E(x,y),则sE(x,y)。因为钢琴不能经过障碍物所在的格子。并且不能出边界。 瑰丽华尔兹(NOI2005) 边界条件:

文档评论(0)

1亿VIP精品文档

相关文档