首页 > 其他 > 详细

p1884

时间:2018-10-04 14:46:56      阅读:152      评论:0      收藏:0      [点我收藏+]

十月的停课集训开始了,祝我顺利.

半上午时间搞了这道题,感觉非常的值得.

技术分享图片

技术分享图片

和当年做的某两题题目类似吧,但是又有很大区别.可以想到两个点间的距离是max(Δx,Δy);

可以很快想到暴力算法:枚举每对点并计算距离后相加.但是本题的点数是<=m*n的,这个算法就是n*n*m*m,GG

刚开始没有注意到可以向四面八方跑,只能上下左右的话我会写动态规划:记录每一列和每一行的点数.用m*n算出所有点到(1,1)的距离和d[1][1],那么d[i][1]=d[i-1][1]+第i-1行及以上的点数-第i行及以下的点数,因为上面的每个点到这个点的距离比之前多了1,而这一行与下面的点到这个点距离都小了1.而d[i][f]=d[i][f-1]+第f-1列及以前的点数-第f列及以后的点数.原理和刚才一样.

然而本题要求斜着走也为1,向下走的时候

p1884

原文:https://www.cnblogs.com/qywyt/p/9742208.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!