概率专题 牛客网 小A买***:概率 dp所有的方案数

题目链接:https://ac.nowcoder.com/acm/contest/549/C
题目大意:

dp[i][j]买i张***得到j元奖金的方案数

for(int k=1;k<=4;k++)
{
	  if(j>=k)
	  {
	      dp[i][j]+=dp[i-1][j-k];
	  }
}
#include <bits/stdc++.h>
#define LL long long
using namespace std;

LL dp[50][150];
int main()
{
    LL n;
    scanf("%lld",&n);
    if(n==0){
        cout<<"1/1"<<endl;
        return 0;
    }
    memset(dp, 0, sizeof(dp));
    dp[1][1]=dp[1][2]=dp[1][3]=dp[1][4]=1;
    for(int i=2;i<=n;i++){
        for(int j=1;j<=4*n;j++){
                for(int k=1;k<=4;k++){
                    if(j>=k){
                        dp[i][j]+=dp[i-1][j-k];
                    }
                }
        }
    }
    LL ans1=0, ans2=0;
    for(int i=3*n;i<=4*n;i++){
        ans1+=dp[n][i];
    }
    for(int i=1;i<=4*n;i++){
        ans2+=dp[n][i];
    }
    LL gcd=__gcd(ans1, ans2);
    cout<<ans1/gcd<<'/'<<ans2/gcd<<endl;

	return 0;
}

全部评论

相关推荐

安静的鲸鱼offer...:神仙级别hr,可遇不可求,甚至他可能也是突然有感而发。只能说遇上是件幸事。
秋招开始捡漏了吗
点赞 评论 收藏
分享
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务