第一次做bc的比賽,感覺題目很靈活,以後儘量抽時間來做。
這道題本來認爲是遞推來做的,(感覺很對的)但是結果錯了。然後看了題解,看了題解,看了別人的博客,原來是這麼回事。
解題思路:
首先要明白,n<k時,是一個也不能完成覆蓋的(很容易理解),當n>=k時,需要解釋。
假設:在某個覆蓋方案中,僅剩一個s*s的小正方形區域沒有覆蓋到,s<=k/2時,是最優的覆蓋情況。
證明:如上圖所示,將圖標號,當n=9,k=6。用k=6的矩形去填,可以發現每次都會有k個不同的數字,也就是6個,但是可以發現右上角有個正方形,s=3,k/2=3,會發現裏面不同的數字只有2*s-1個,也就是5個,也就是不能滿足有k個不同的數字的要求,所以,不能再進行填矩形,也就是達到了最優。
令r=n%k。1.當r<=k/2時,s=r,未被填滿的區域是r*r。2.當r>k/2時,s=(k-r),未被填滿的區域是(k-r)*(k-r)。
具體的詳細證明,下面鏈接。詳細證明過程