题意:
就是每张彩票3元,然后有4中奖,分别是1,2,3,4元。问你买了n张彩票不亏本的情况下,概率是多少。
思考:
刚开始我总感觉是直接算出来啥的,但是想来想去总写不出来,实际上这样做很麻烦,所以不是正解。直接用dp即可,dp[i][j]代表买了i张彩票一共得了j元钱的方案数,然后最后看看3n到4n的方案数有多少,再除以总方案数4的n次方即可。
代码:
int T,n,m,k;
int va[N];
int dp[M][M];
signed main()
{
IOS;
cin>>n;
dp[0][0] = 1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=4*n;j++)
{
for(int k=1;k<=4;k++)
if(j>=k) dp[i][j] += dp[i-1][j-k];
}
}
int ans = 0;
for(int i=3*n;i<=4*n;i++) ans += dp[n][i];
int down = 1ll<<(n*2);
int now = __gcd(ans,down);
ans /= now,down /= now;
cout<<ans<<"/"<<down;
return 0;
}
总结:
多多思考呀,不要陷入某种想法,及时更换思路。