题目链接: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; }