第一次做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)。
具体的详细证明,下面链接。详细证明过程