题目
在麦克雷的面前有N个数,以及一个R*C的矩阵。现在他的任务是从N个数中取出R*C个,并填入这个矩阵中。矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值。现在,麦克雷想知道矩阵的最小法值是多少。
样例输入:
输入共两行。
第一行是三个整数:n,r,c。
第二行是 n 个整数 Pi。
7 2 3
170 205 225 190 260 225 160
样例输出:
共 m 行,每行一个整数,表示满足条件的对数。
30
数据范围:
30%:1<=n,r,c<=100
50%:1<=n,r,c<=1000
100%:1<=r,c<=10^4,r* c<=n<=5*10^5,0
剖解题目
。。。。。。。。
思路
一般求最优值就是dp之类的,所以很自然就往dp方向去想。
然而设出一个二维的dp状态,发现空间和时间都炸了。
想了一会儿发现空间可以用滚动代替,而时间好像用单调队列可以搞一搞。。。。
搞完后发现时间也炸了。
这道题就炸了。
解法
30%:暴力。
50%:应该是个dp加个优化之类的,就如我当时想的。
100%:二分答案,这样可以省去一维的dp,让时间达到要求。
很明显肯定是按大小顺序选