题意

买一张彩票3元,等概率得到1,2,3,4元,买张彩票,问不亏的概率。

分析

我们可以利用不亏的方案数除以总的方案数,得到不亏的概率。
定义表示买了张,共得到元的方案数。
显然,我们只需要枚举第次得到多少元就行了。
然后注意的情况就好了。

#include <bits/stdc++.h>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define pii pair<int,int>
#define int long long
const int inf = 0x3f3f3f3f;
const int maxn = 32;
const int M = 1e9+7;
int n,m,k,ok;

int dp[maxn][125];

signed main()
{
    cin>>n;
    dp[0][0] = 1;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= 4; j++)        //第i次得到j元
        {
            for(int k = 0; k <= 120; k++)
            {
                dp[i][j+k] += dp[i-1][k];
            }
        }
    }
    int res = 0,ans = 0;
    for(int j = 0; j <= 120; j++)
    {
        res += dp[n][j];
        if(j >= 3*n) ans += dp[n][j];
    }
    int gcd = __gcd(res,ans);
    if(gcd)
    {
        ans /= gcd;
        res /= gcd;
    }
    cout<<ans<<'/'<<res<<endl;
    return 0;
}