codeforces #199 C. Cupboard and Balloons 题解
来源:互联网 发布:一般淘宝代购是正品吗 编辑:程序博客网 时间:2024/06/14 02:38
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/23164145
【原题】
A girl named Xenia has a cupboard that looks like an arc from ahead. The arc is made of a semicircle with radius r (the cupboard's top) and two walls of height h (the cupboard's sides). The cupboard's depth is r, that is, it looks like a rectangle with base r and height h + rfrom the sides. The figure below shows what the cupboard looks like (the front view is on the left, the side view is on the right).
Xenia got lots of balloons for her birthday. The girl hates the mess, so she wants to store the balloons in the cupboard. Luckily, each balloon is a sphere with radius . Help Xenia calculate the maximum number of balloons she can put in her cupboard.
You can say that a balloon is in the cupboard if you can't see any part of the balloon on the left or right view. The balloons in the cupboard can touch each other. It is not allowed to squeeze the balloons or deform them in any way. You can assume that the cupboard's walls are negligibly thin.
The single line contains two integers r, h (1 ≤ r, h ≤ 107).
Print a single integer — the maximum number of balloons Xenia can put in the cupboard.
1 1
3
1 2
5
2 1
2
【分析】因为矩形的宽=2*r,很容易想到自底向上两个两个放上去。
#include<cstdio>using namespace std;int r,h,n,ans;int main(){ scanf("%d%d",&r,&h); ans=h/r*2; if (h%r>=double(r)/double(2)) ans+=2;else ans++; printf("%d",ans); return 0;}
开始我没怎么仔细想,直接以上代码交上去,结果第17个点WA了。数据摘录于此:3983458,7761504.为什么这组会错呢?我发现从底层放上去只有2个,因此最后输出4了。但是答案是5!原来,ans+1和ans+2都满足。
也就是说,可能有一种情况,可以多放两个再多放一个。
以下图片可以看出:
我们可以算出,GH=2-sqrt(3)。详细算法见代码。
【AC代码】
#include<cstdio>#include<cmath>using namespace std;int n,ans;double r,h;int main(){ scanf("%lf%lf",&r,&h); ans=int(h/r)*2;h-=int(h/r)*r; if (h>=(r+0.0)/2.0) ans+=2,h-=r; h+=r+(2.0-sqrt(3.0))*r/2.0; if (h>=r) ans++; printf("%d",ans); return 0;}
- codeforces #199 C. Cupboard and Balloons 题解
- Codeforces Round #199 (Div. 2) C. Cupboard and Balloons
- Codeforces Round #199 (Div. 2) C. Cupboard and Balloons
- Codeforces Round #199 (Div. 2) C. Cupboard and Balloons
- CodeForces 342C Cupboard and Balloons
- CodeFroces342 C. Cupboard and Balloons
- Codeforces Round #199 (Div. 2) -- C. Cupboard and Balloons (数学)
- Codeforces Round #199 (Div. 2) C. Cupboard and Balloons(数学)
- Cupboard and Balloons
- CF 342C(Cupboard and Balloons-难得对的贪心)
- cf 342C - Cupboard and Balloons(计算几何)
- 【模拟】Cupboard and Balloons
- 【codeforces 782C】Andryusha and Colored Balloons
- codeforces 782c Andryusha and Colored Balloons
- Codeforces 780C-Andryusha and Colored Balloons
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons
- Codeforces 782C Andryusha and Colored Balloons dfs
- Codeforces Round #403 C. Andryusha and Colored Balloons(DFS)
- nf_conntrack: table full, dropping packet问题的解决思路
- 【模式匹配】KMP算法的简明理解
- ZOJ 1057 Undercut (格式问题)
- 富豪应多做慈善事业
- java谜题1:奇数性
- codeforces #199 C. Cupboard and Balloons 题解
- 08-remove @Override annotation错误
- Best Time to Buy and Sell Stock II -- LeetCode
- dll和exe的共享节------多进程共享dll/exe全局变量
- 火星坐标和正常坐标之间的转换
- 我们为什么而活
- Debian GUN/Linux Desktop grap语言配置 [大三四八九月实习]
- C++学习日记之对象作为数据成员
- 谈谈android反编译和防止反编译的方法