UVA 11346 Probability
题目描述

输入输出格式
输入格式:

输出格式:

输入输出样例
输出样例#1:
23.348371%
0.000000%
100.000000%
发现求的是一个和 反比例函数有关的积分,吓得我赶紧去学习了一波积分(之前一直不会还这么淡定2333)。
积分就是导数的反运算嘛,然后 ln(x)的导数是 1/x 所以反比例函数的积分就是 ln(),然后直接做就行了2333
#include<bits/stdc++.h>
#define ll long long
using namespace std;
#define D double
const D eps=1e-12;
D A,B,S,ANS,X;
int T;
inline void solve(){
ANS=0,scanf("%lf%lf%lf",&A,&B,&S);
if(A*B<=S) puts("0.000000%");
else if(S<=eps) puts("100.000000%");
else{
X=S/B,ANS=(A-X)*B;
ANS-=S*(log(A)-log(X));
printf("%.6lf%\n",ANS/(A*B)*100);
}
}
int main(){
scanf("%d",&T);
while(T--) solve();
return 0;
}
我爱学习,学习使我快乐

浙公网安备 33010602011771号