hdu5100---Chessboard

第一次做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)。

具體的詳細證明,下面鏈接。詳細證明過程


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章