经典概率,主要找递推式。
给你n个门,每次选一个,如果为正x就x秒后结束,否则-x秒后还要留在这里,求期望。
ANS=P_POS*POS_AVERAGE+P_NEG*(NEG_AVERAGE+ANS);
借出Y即可。
#include <iostream> #include <functional> #include <algorithm> #include <complex> #include <cstdlib> #include <cstring> #include <fstream> #include <iomanip> #include <sstream> #include <utility> #include <bitset> #include <cctype> #include <cstdio> #include <limits> #include <memory> #include <string> #include <vector> #include <cmath> #include <ctime> #include <queue> #include <stack> #include <list> #include <map> #include <set> using namespace std; int main() { long long T,ncas=1; scanf ("%d",&T); while (T--) { long long n,a[110],sum=0,p1=0,sum_p1=0,p2=0,sum_p2=0; scanf ("%lld",&n); for (long long i=0;i<n;i++) { scanf ("%lld",&a[i]); if (a[i]>0) {p1++;sum_p1+=a[i];} else {p2++;sum_p2+=(-a[i]);} } long long u,v; u=sum_p1+sum_p2; v=n-p2; if (p1!=0) { long long mmm=__gcd(u,v); printf ("Case %lld: %lld/%lld\n",ncas++,u/mmm,v/mmm); } else printf ("Case %lld: inf\n",ncas++); } return 0; }
时间: 2024-10-01 05:33:09