前言
博主太弱了
题解
这道题目是一个简单的贪心。
首先毋庸置疑,柜子的下半部分是要放满的。
于是我们很容易想到,分以下三种情况考虑:
[small ext{请不要盗图,如需使用联系博主}
]
我们考虑如何辨别情况,不妨设(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;
}