题目连接: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 。(其中 ⌈⌉ 表示向上取整)
因此咱们能够很方便地实现这个代码:c++
#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; }