标签:距离 com 动态规划 技术分享 相加 时间 图片 ima 注意
十月的停课集训开始了,祝我顺利.
半上午时间搞了这道题,感觉非常的值得.
和当年做的某两题题目类似吧,但是又有很大区别.可以想到两个点间的距离是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,向下走的时候
标签:距离 com 动态规划 技术分享 相加 时间 图片 ima 注意
原文地址:https://www.cnblogs.com/qywyt/p/9742208.html