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]

相关推荐
夜思红尘3 小时前
算法--双指针
python·算法·剪枝
散峰而望3 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
点云SLAM3 小时前
BOOS库中Graph模块boost::edge_reverse_t和boost::vertex_color_t解读
数据库·edge·图论·bfs·dfs/拓扑排序·boost库、
CoderCodingNo3 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……4 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
前端小L4 小时前
双指针专题(三):去重的艺术——「三数之和」
javascript·算法·双指针与滑动窗口
智者知已应修善业5 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
LYFlied5 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
多米Domi0115 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表
..过云雨5 小时前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端