MedalPluS's blog

By MedalPluS, 9 years ago, In English

题意:给你一个n*m的矩形,求最少用几个a*a的小矩形去覆盖它?(不允许打碎,但允许覆盖)

算法:数学 手画几个矩形,我们发现,贴着边放矩形即可,如果不能整除则+1,否则累积下来 然后用行乘列,记得开long long 时间复杂度O(1) 空间复杂度O(1)

#include <iostream>
#include <cstdio>

using namespace std;

int a,n,m;
long long row,col;
int main(){
    cin>>n>>m>>a;
    row=n/a+(n%a==0?0:1);
    col=m/a+(m%a==0?0:1);
    cout<<row*col;
    return 0;
}
  • Vote: I like it
  • -17
  • Vote: I do not like it