【HDU - 1943】Ball bearings(几何问题)
題干:
The Swedish company SKF makes ball bearings. As explained by Britannica Online, a ball bearing is “one of the two types of rolling, or anti friction, bearings (the other is the roller bearing).?
Its function is to connect two machine members that move relative to one another so that the frictional resistance to motion is minimal. In many applications, one of the members is a rotating shaft and the other a fixed housing. Each ball bearing has three main parts: two grooved, ring like races and a number of balls. The balls fill the space between the two races and roll with negligible friction in the grooves. The balls may be loosely restrained and separated by means of a retainer or cage.”?
Presumably, the more balls you have inside the outer ring, the smoother the ride will be, but how many can you t within the outer ring? You will be given the inner diameter of the outer ring, the diameter of the balls, and the minimum distance between neighboring balls. Your task is to compute the maximum number of balls that will t on the inside of the outer ring (all balls must touch the outer ring).?
Input
The first line of input contains a positive integer n that indicates the number of test cases. Then follow n lines, each describing a test case. Each test case consists of three positive oating point numbers, D, d, s, where D is the inner diameter of the outer ring, d is the diameter of a ball, and s is the minimum distance between balls. All parameters are in the range [0.0001, 500.0].
Output
For each test case output a single integer m on a line by itself, where m is the maximum number of balls that can t in the ball bearing, given the above constraints. There will always be room for at least three balls.
Sample Input
2 20 1 0.1 100.0 13.0 0.2Sample Output
54 20題目大意:
首先是一個t,表示輸入實例數。以下每行是一個實例,有3個浮點正數,D,d,s。D是大圓的直徑,d是小圓的直徑,s是依序相鄰的小圓之間的最小距離。所有參數都是在[0.0001, 500.0]范圍內。
解題報告:
? ?直接計算出圓心角,然后PI/圓心角就可以了。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair using namespace std; const double PI = acos(-1.0); int main() {int t;cin>>t;double s,d,D;while(t--) {scanf("%lf%lf%lf",&D,&d,&s);printf("%d\n",(int)(PI/asin((d+s)/(D-d))));} return 0 ; }?
總結
以上是生活随笔為你收集整理的【HDU - 1943】Ball bearings(几何问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wfxctl32.exe - wfxct
- 下一篇: 【POJ - 1087】A Plug f