# Math# Greedy

a831 - 1、地砖摆放

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算在長寬分別為 n 和 m 的房間中,使用邊長為 a 的地磚所需的最少地磚數量。地磚可以切割,但切割後只能保留其中一塊,其餘作廢。

解題思路

由於地磚可以切割,因此我們需要計算覆蓋長度和寬度所需的地磚數量,然後將它們相乘即可得到總的地磚數量。對於長度 n 和寬度 m,我們需要計算 ceil(n/a)ceil(m/a),其中 ceil 表示向上取整。程式碼中使用了條件運算符來實現向上取整的功能。如果 n 或 m 可以被 a 整除,則直接除以 a;否則,除以 a 後加 1。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <stdio.h>
int main(){
	long long int a,b,c;
	while(scanf("%lld%lld%lld",&a,&b,&c)>0){
		(a%c==0)?a=a/c:a=a/c+1;
		(b%c==0)?b=b/c:b=b/c+1;
		printf("%lld\n",a*b);
	}
}

Discussion