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]

相关推荐
Book思议-5 分钟前
【数据结构实战】双向链表:在指定位置插入数据
c语言·数据结构·算法·链表
lightqjx9 分钟前
【算法】前缀和
c++·算法·leetcode·前缀和
窝子面11 分钟前
LeetCode练题三:链表
算法·leetcode·链表
扶摇接北海17629 分钟前
洛谷:P1104 生日
算法
汉克老师33 分钟前
GESP5级C++考试语法知识(七、链表(二)双链表)
c++·链表·双链表·gesp5级·gesp五级
旖-旎33 分钟前
二分查找(寻找旋转排序数组中的最小值)(7)
c++·算法·二分查找·力扣
C羊驼35 分钟前
C/C++数据结构与算法:穷举法
c语言·c++·笔记·学习·算法
guoji778835 分钟前
Gemini 3.1 Pro 安全与对齐机制深度解析:可控性、合规性与企业级应用评估
大数据·人工智能·算法
小则又沐风a36 分钟前
[蓝桥杯 2014 省 AB] 蚂蚁感冒
算法·职场和发展·蓝桥杯
十五年专注C++开发38 分钟前
libuv:一个跨平台的C++异步 I/O 库
开发语言·c++·node.js·libuv·vlibuv