P2719 搞笑世界杯 (期望dp

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
using VI = vector<int>;

double dp[2000][2000];
int n;
//求dp[2][0]
//dp[0][2]
//期望dp要从终末态,向起始态转移
//dp[a][b] - > dp[a][b-1]  or dp[a-1][b]
//dp[a][b] = 1/2 * dp[a][b+1] + 1/2 * dp[a+1][b]
int main(){
    cin>>n;
    n/=2;
    dp[n][n] = 1;
    for(int i = n ; i >= 1 ; i--){
        for(int j = n ; j >= 1 ; j--){
            dp[i][j-1] += dp[i][j] / 2.0;
            dp[i-1][j] += dp[i][j] / 2.0;
        }
    }
    double res  = 0;

    for(int i = 2; i <= n ; i++){
        res += dp[i][0] + dp[0][i];
    }  
    printf("%.4f" , res);


}

考虑一种票全部卖完,另一种有大于等于2 张的所有情况都为合理情况

dp[i][j] 可以 等概率的转移到 dp[i-1][j] 和 dp[j][i-1]

相关推荐
wuweijianlove2 分钟前
关于算法设计中的代价函数优化与约束求解的技术7
算法
leoufung35 分钟前
LeetCode 149: Max Points on a Line - 解题思路详解
算法·leetcode·职场和发展
样例过了就是过了36 分钟前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
HXDGCL44 分钟前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
谭欣辰1 小时前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商1 小时前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法
橙子也要努力变强2 小时前
信号捕捉底层机制-机理篇2
linux·服务器·c++
foundbug9992 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
盐焗鹌鹑蛋2 小时前
【C++】stack和queue类
c++
郝学胜-神的一滴3 小时前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal