这是个数学题a…
所有的\(r*r\)的scoop的数目为\((n-r+1)*(m-r+1)\)
其中包含坐标\((x,y)\)的scoop的数目为(坐标index从1开始)\[f(x,y)=(min(n+1,x+r)-max(x,r))*(min(m+1,y+r)-max(y,r))\]
\(f(x_0,y)\)在固定x坐标的情况下,\(f(x_0,y)\)先增后减,最大值点为\(\left \lfloor \frac{m+1}{2} \right \rfloor\)
全局最大值点为\((\left \lfloor \frac{n+1}{2} \right \rfloor,\left \lfloor \frac{m+1}{2} \right \rfloor)\)
因此,可以得到的算法为:1.从每一行的最大值点开始,向两边扩展;2.从全局最大值点开始BFS
题目说精确度1e-9,小数要输出到第9位以后,默认double输出6位导致WA
代码实现算法1,其中’D’表示decrease,向左边扩展,‘I’表示increase,向右边扩展