博主太弱了
这道题目是一个简单的贪心。
首先毋庸置疑,柜子的下半部分是要放满的。
于是我们很容易想到,分以下三种情况考虑:
\[\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;
}
[CF342C]Cupboard and Balloons 题解
原文:https://www.cnblogs.com/linzhengmin/p/11180938.html