[CF342C]Cupboard and Balloons 题解

前言

博主太弱了

题解

这道题目是一个简单的贪心。
首先毋庸置疑,柜子的下半部分是要放满的。
于是我们很容易想到,分以下三种情况考虑:

\[\small\text{请不要盗图,如需使用联系博主} \]

我们考虑如何辨别情况,不妨设\(m\ \%\ r\)\(\ left\),如果\(left < \frac{r}{2}\),那么显然当前的情况是1;如果\(\frac{r}{2} \leq left<\frac{\sqrt{3}r}{2}\),那么显然当前的情况是2;如果\(\frac{\sqrt{3}r}{2} \leq left\)那么显然当前的情况是情况3。
那么实现起来就很简单了。
首先计算\(\frac{m}{r}\),然后对于情况几就加上几。

代码

#include <cstdio>
#include <cmath>

int main(){
	int r, h; scanf("%d %d", &r, &h);
	int lft = h % r, ans = (h / r) * 2 + 1;
	if (lft >= (double)(r) / 2.0 * sqrt(3)) ans += 2;
	else if (lft >= (double)(r) / 2) ++ans;
	printf("%d", ans);
	return 0;
}
posted @ 2019-07-13 15:56  LinZhengmin  阅读(203)  评论(1编辑  收藏  举报

Contact with me