洛谷的题解有点千篇一律了,都是二分,原因也都是n,m<=1e6,但是原题有一个约数条件:n*m<=1e6,所以我们可以动态开数组,而不是固定的。
tip:函数和lambda表达式或者function无法调用第二维没有确定的数组,如int a[n+1][m+1],此时就不要用函数了,直接把函数的式子拿出来用。
先来看题目。
第一反应可能是动态规划,因为只能往下走和往右走,但是这道题思考之后发现没有什么关联。
{1,2,4,5}输出的是mex(S)=0,根据下面的样例也可以发现,mex的值由最小值决定。
某一条路径获取到的最小值从0开始往上,获取的越多,mex才有可能越大。
如{0,1,2,3,4}的话,mex就是5了。
所以根据思路,我们一定要走到0上。
稍加分析,显然这个0不管在哪里都会被我们走到,所以任意设一个点。