题目链接:http://codeforces.com/contest/1/problem/A
题目大意:
给你一个 n × m 的矩形地面,你要用 a × a 的地瓷砖铺满它。但是你不能破坏这些地砖,
而且你铺的瓷砖都必须和地面的长或宽平行,问最少需要多少多少瓷砖?
题目分析:
这是一道基础问题,不涉及什么比较有难度的算法。
首先我们来看,按照题目要求来铺瓷砖的话,我们最终铺出来的也是一个矩形。
并且我们设我们铺出来的长方形的长和宽分别为 n' 和 m' ,并且满足 n' ≥ n 且 m' ≥ m 。
并且我们知道, n' 和 m' 都是能被 a 整除的。所以我们只需要找到最小的 n' 和 m' 就可以了。
通过分析我们能够得到最小的 n' = ⌈n/a⌉ × a , 最小的 m' = ⌈m/a⌉ × a 。(其中 ⌈⌉ 表示向上取整)
所以我们可以很方便地实现这个代码:

#include <bits/stdc++.h>
using namespace std;
long long n, m, a;

int main() {
    cin >> n >> m >> a;
    cout << ( ( (n+a-1)/a ) * ( (m+a-1)/a ) ) << endl;
    return 0;
}

  

posted on 2019-06-15 14:56  月亮编程  阅读(256)  评论(0编辑  收藏  举报