UVA 11346 - Probability 数学积分
Consider rectangular coordinate system and point L(X, Y ) which is randomly chosen among all points
in the area A which is defined in the following manner: A = {(x, y)|x ∈ [−a; a];y ∈ [−b; b]}. What is
the probability P that the area of a rectangle that is defined by points (0,0) and (X, Y ) will be greater
than S?
Input
The number of tests N ≤ 200 is given on the first line of input. Then N lines with one test case on
each line follow. The test consists of 3 real numbers a > 0, b > 0 ir S ≥ 0.
Output
For each test case you should output one number P and percentage ‘%’ symbol following that number
on a single line. P must be rounded to 6 digits after decimal point.
Sample Input
3
10 5 20
1 1 1
2 2 0
Sample Output
23.348371%
0.000000%
100.000000%
题解:给你x,y,s,问说在x,y与x,y轴形成的矩形内选取一点,和x,y轴形成图形的面积大于s的概率。
题解:
画个图是求个积分
S = s* (ln(x1)- ln(x));
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <bitset> using namespace std ; typedef long long ll; const int N = 3000 + 5; int main () { int T; scanf("%d",&T); while(T--) { double x,y,s; scanf("%lf%lf%lf",&x,&y,&s); double x1 = min(x,s / y); double S = 0; if(s > 1e-9) S = x1 * y + s * (log(x) - log(x1)); //cout<<S<<endl; double p = 1.0 - S / (x * y); p *= 100; printf("%.6f%%\n", p); } return 0; }