考虑如何回答询问。
由于每个格子被加成多少在询问某个时间很难具体得知(或者得知时间复杂度太高),所以要换一种思路。
注意到每个格子加上的都是正数,所以一个格子如果(geq L),则在后面的时刻它都会(geq L)。
考虑求出一个格子(geq L)的时间,这是个经典的问题(集训队作业矩阵乘法),使用扫描线+二维bit+整体二分即可解决。
但是由于每一个格子出现的时间都在询问的时间之前,所以使用扫描线+bit即可计算。
此部分时间复杂度(O(nmlog_2^2nm))
设(p_{i,j})表示(i,j)被加到(geq L)的时间。
定义某路径长度为它经过的所有格子的(p)的最小值(mn)。
设当前询问时间为(t),则当(mn>t)的时候可以到达。
求出(mn)也是个经典的问题(ZJOI2016 旅行者)。
对网格沿着短边分治,在短边处合并答案。
处理必须经过中线一个点的答案。
从左边每个点到中线,右边每个点到中线进行dp。
这样子一次询问时间复杂度最坏也不会超过(sqrt{nm})。
套用旅行者的分析可得时间复杂度为(O(nmlog_2^2nm+nmsqrt{nm}+qsqrt{nm}))