长春网站建设流程,红塔网站制作,做外贸需要到外汇管理网站,黄页88网全自动录播系统洛谷 2719 搞笑世界杯 洛谷原题链接 这道难度只有普及-的题目却花了我一个多小时才搞出来。但做出来之后就会发现#xff1a;其实这题确实挺水。。。 解题思路#xff1a; 首先开二维数组 dp [ i ] [ j ] . 代表已售 i 张 A , j 张 B 时后两人买到的票相同的概率。 很显然其实这题确实挺水。。。 解题思路 首先开二维数组 dp [ i ] [ j ] . 代表已售 i 张 A , j 张 B 时后两人买到的票相同的概率。 很显然dp [ 1 ] [ 0 ] 与 dp [ 0 ] [ 1 ] 的初始值应该为 1 因为当只有一张票被售出时我们可以默认后两个人买的票类型相同所以买到票相同的概率位 100% . 然后开始推状态转移方程dp [ i ] [ j ] ( dp [ i - 1 ] [ j ] dp [ i ] [ j - 1 ] ) * 0.5 。 每一个状态 dp [ i ] [ j ] 都是由 dp [ i - 1 ] [ j ] 和 dp [ i ] [ j - 1 ] 得到的因为每次卖票要么会卖 A 要么会卖 B 根据加法计数原理加起来就好了但是由于两种情况是由抛硬币来决定的所以发生的几率都会 50% 。 于是乎dp [ i ] [ j ] ( dp [ i - 1 ] [ j ] dp [ i ] [ j - 1 ] ) * 0.5 。 代码就简单了注意开始的初始化 #includecstdio
#includeiostream
const int M1500;
int n;
double f[M][M];
int main()
{scanf(%d,n);n1;for (int i2;in;i)f[i][0]1,f[0][i]1; for (int i1;in;i)for (int k1;kn;k)f[i][k]f[i-1][k]*0.5f[i][k-1]*0.5;printf(%.4lf,f[n][n]);return 0;
} 转载于:https://www.cnblogs.com/yanyiming10243247/p/9305178.html