测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A27727. 拼图(graph.cpp)问题描述 小明想用自己的打印机打印一幅宽为 W,高为 H 的画。然而他的打印机不够大,只能打出边长为 a 的正方形图片,他打算将画分割成很多个部分,每个部分都是长方形,且长方形的边与原来的画的边平行,长方形的每边长度都不超过 a。为了减小麻烦,小明希望最终分出的长方形数量最少。 请问他最少要分出多少个长方形?例如,当小明的画宽为 25,高为 15 时,若打印机可以打印的…

填空题 中等

题目描述

拼图(graph.cpp)

问题描述 

小明想用自己的打印机打印一幅宽为 W,高为 H 的画。

然而他的打印机不够大,只能打出边长为 a 的正方形图片,他打算将画分割成很多个部分,每个部分都是长方形,且长方形的边与原来的画的边平行,长方形的每边长度都不超过 a。

为了减小麻烦,小明希望最终分出的长方形数量最少。 请问他最少要分出多少个长方形?

例如,当小明的画宽为 25,高为 15 时,若打印机可以打印的正方形的边长为 10,则至少要分出 6 个长方形。

输入格式

从文件 graph.in 中输入数据。

输入一行包含三个整数 W, H, a,意义如上所述。

输出格式

输出到文件 graph.out 中。

输出一行包含一个整数,表示答案。

样例输入

25 15 10

样例输出

6

评测用例规模与约定

注意:以下规模是评测时输入数据一定会满足的限制,在你的程序中不需要对这些限制进行检查。 对于所有评测用例,1 ≤ W ≤ 10000,1 ≤ H ≤ 10000,1 ≤ a ≤ 10000。

参考答案

#include <cstdio> #include <iostream> #include <cmath> using namespace std; int main() {     freopen("graph.in", "r", stdin);     freopen("graph.out", "w", stdout);     int W, H, a;     cin >> W >> H >> a;     int row = ceil(1.0 * W / a); // 行     int col = ceil(1.0 * H / a); // 列     cout << row * col << endl;     return 0; }
上一题 下一题