概率/期望 DP llya and Escalator

?題目鏈接:Problem - D - Codeforces

看了這篇文章來的:【算法學習筆記】概率與期望DP - RioTian - 博客園

這篇博客寫得挺好的,講了一些常見方法,概率 / 期望的題多練練就上手了。

題目大意:

n 個人排隊上電梯,每次只有隊首那個人可能上電梯,且他上電梯的概率為 p ,一旦上去就不會下來,求 t 秒之后電梯上的人數的期望。

Solution1:

利用期望的定義計算,即 期望 = sum(概率 * 權重) 。

設?f_{i,j}?表示?i 秒之后電梯上有 j 個人的概率,那么?Ans = \sum_{i = 0}^{n} f_{t,i} * i

下面考慮轉移方程:

顯然?f_{0,0} = 1.00

假設當前狀態是?f_{i,j}?,如果此時 j == n 了,那么轉移直接就是?f_{i + 1,n} = f_{i,n}

(這一步特判必不可少,因為要滿足全概率為 1 的穩定性)

如果 j < n ,則轉移取決于此時隊首這個人上不上電梯

上:f_{i + 1,j + 1} += p * f_{i,j}

不上:f_{i + 1,j} += (1-p) * f_{i,j}

Code:

#include<cstdio>
#include<cstring>
using namespace std;#define N 2005int n,t;
double p,f[N][N],ans;int main()
{scanf("%d%lf%d",&n,&p,&t);f[0][0] = 1.00,ans = 0.00;for (int i = 0;i < t;++ i){f[i + 1][n] = f[i][n];for (int j = 0;j < n;++ j)f[i + 1][j] += f[i][j] * (1 - p),f[i + 1][j + 1] += f[i][j] * p;}for (int i = 1;i <= n;++ i)ans += i * f[t][i];printf("%.6lf\n",ans);return 0;
}

Solution2:

另一種比較巧妙的技巧,就是把狀態抽象成點,把狀態之間的轉移抽象成邊

定義:只有從狀態 (i,j) 轉移到 (i + 1,j + 1) 的邊的邊權為1,從狀態 (i,j) 轉移到 (i + 1,j) 的邊的邊權設置為 0 ,那么這里邊權的意義就是此次轉移增加了電梯上的幾個人(1或0)。于是問題轉化成了計算每條邊的期望通過次數

設想一下,如果我們知道通過每個 "點" 的期望次數,那 "邊" 不就迎刃而解了嗎?于是問題又轉化成了計算每個點的期望通過次數

設?f_{i,j}?表示通過狀態 (i,j) 這個點的期望次數,那么有:

f_{i + 1,j + 1} += p * f_{i,j}

f_{i + 1,j} += (1-p) * f_{i,j}

可以發現其實和 Solution1 如出一轍。

那么對于 "從狀態 (i,j) 轉移到 (i + 1,j + 1) 的邊" 的期望通過次數就是?f_{i,j} * p,對于 "從狀態 (i,j) 轉移到 (i + 1,j) 的邊" 的期望通過次數就是?f_{i,j} * (1-p)

根據期望的線性性質,總期望等于各邊期望貢獻之和,即:

Ans = \sum_{i = 0}^{t - 1} \sum_{j = 0}^{n - 1} f_{i,j} * p?(因為我們無需計算邊權為0的邊的貢獻,只算?f_{i,j} * p?即可)

Code:

#include<cstdio>
#include<cstring>
using namespace std;#define N 2005int n,t;
double p,f[N][N],ans;int main()
{scanf("%d%lf%d",&n,&p,&t);f[0][0] = 1.00,ans = 0.00;for (int i = 0;i < t;++ i){f[i + 1][n] += f[i][n];for (int j = 0;j < n;++ j){f[i + 1][j] += f[i][j] * (1.00 - p);f[i + 1][j + 1] += f[i][j] * p;}}for (int i = 0;i < t;++ i)for (int j = 0;j < n;++ j)ans += f[i][j] * p;printf("%.6lf\n",ans);return 0;
}

這兩種方法其實體現了期望DP的兩種不同思路,適合仔細琢磨。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94505.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大陸電子MBDS開發平臺轉到其他國產控制器平臺產生的問題記錄

u8_StComLowSpdGearSwt變量為例&#xff0c;之前用的時候只有輸入&#xff0c;沒什么實際意義&#xff0c;導致新環境下編譯報錯&#xff0c;缺少聲明&#xff0c;解決辦法&#xff1a;注釋掉輸入模塊。今天解決的另一個比較大的問題&#xff0c;不同模型函數公用函數模塊生成代…

機器學習模型調優實戰指南

文章目錄模型選擇與調優&#xff1a;從理論到實戰1. 引言2. 模型評估&#xff1a;為選擇提供依據2.1 偏差-方差權衡2.2 數據集劃分與分層抽樣2.3 交叉驗證&#xff08;Cross-Validation&#xff09;2.4 信息準則&#xff08;AIC / BIC&#xff09;3. 超參數調優&#xff1a;讓模…

【教程】Unity CI/CD流程

測試機&#xff1a;紅帽 Linux8 源碼倉庫&#xff1a;Gitee - MrRiver/Unity Example ? 系統環境準備 1&#xff09;yum 源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo sudo sed -i s/\$releasever/8/g /etc/yum.repos…

文獻閱讀 | Briefings in Bioinformatics | Hiplot:全面且易于使用的生物醫學可視化分析平臺

文獻介紹文獻題目&#xff1a; Hiplot&#xff1a;一個綜合且易于使用的 Web 服務&#xff0c;用于增強出版物準備的生物醫學數據可視化 研究團隊&#xff1a; Openbiox/Hiplot 社區 發表時間&#xff1a; 2022-07-05 發表期刊&#xff1a; Briefings in Bioinformatics 影響因…

【數字圖像處理系列筆記】Ch04:灰度變換與空間域圖像增強(2)

目錄 一、空域濾波基礎 一、空域濾波的基本概念 二、空域濾波的數學原理 三、空域濾波器的分類與典型示例 &#xff08;一&#xff09;線性濾波器&#xff08;Linear Filter&#xff09; &#xff08;二&#xff09;非線性濾波器&#xff08;Non-linear Filter&#xff0…

AI浪潮下,FPGA如何實現自我重塑與行業變革

引言&#xff1a;AI 與 FPGA&#xff0c;新時代的碰撞 2025 年&#xff0c;人工智能技術迎來爆發式增長&#xff0c;大模型、生成式 AI 和多模態技術持續突破&#xff0c;人形機器人量產元年正式開啟&#xff0c;自動駕駛商業化進程加速&#xff0c;工業數字化轉型全面鋪開(1)…

系統集成項目管理工程師【第十一章 規劃過程組】定義范圍、創建WBS、規劃進度管理和定義活動篇

系統集成項目管理工程師【第十一章 規劃過程組】定義范圍、創建WBS、規劃進度管理和定義活動篇 一、定義范圍&#xff1a;給項目畫好"邊界線" 定義范圍是明確項目和產品"做什么、不做什么"的過程&#xff0c;直接影響后續所有工作的方向。 1. 核心概念與作…

Spring Boot 參數校驗全指南

Spring Boot 參數校驗全指南 在 Web 開發中&#xff0c;參數校驗是保障接口安全性和數據合法性的關鍵環節。手動編寫校驗邏輯不僅繁瑣&#xff0c;還容易遺漏邊界情況。Spring Boot 整合了 validation 工具&#xff0c;提供了一套簡潔高效的參數校驗方案&#xff0c;可快速實現…

常用技術資料鏈接

1.team技術 https://zhuanlan.zhihu.com/p/11389323664 https://blog.csdn.net/Lucky_Lu0/article/details/121697151 2.bond切換主備 https://www.xgss.net/3306.html 3.ssh詳解&#xff1a; https://cloud.tencent.com/developer/news/105165 https://blog.huochengrm.c…

【Spring Cloud】-- 注冊中心

文章目錄1. 什么是注冊中心2. CPA理論1. 什么是注冊中心 注冊中心有三種角色&#xff1a; 服務提供者&#xff08;Server&#xff09; &#xff1a;提供接口給其他微服務的程序。服務消費者&#xff08;Client&#xff09;&#xff1a;調用其他微服務提供的接口。**服務注冊中…

go-zero 詳解

go-zero 詳解 go-zero 是一個基于 Go 語言的微服務框架&#xff0c;由字節跳動團隊開發并開源&#xff0c;旨在幫助開發者快速構建高可用、高性能的微服務架構。它集成了豐富的組件&#xff0c;簡化了微服務開發中的常見問題&#xff08;如服務注冊發現、配置管理、限流熔斷等&…

接口自動化框架封裝之統一請求封裝及通過文件實現接口關聯

接口自動化測試框架封裝目的:簡化自動化框架的落地,提高投入和產出比,只要一個人封裝好框架,另外的測試通過寫yaml測試用例即可實現接口自動化1.統一請求的封裝去除多余重復的代碼可跨py文件實現通過一個session來自動關聯有cookie的接口設置統一公共參數,統一文件處理,統一異常…

Vue 最佳實踐:如何利用唯一 key 值保證 el-table 動態渲染的穩定性

&#x1f4cb; 問題描述 在Vue 2.0 ElementUI項目的偏置條件管理頁面中&#xff0c;每次切換到"內規拉偏"菜單時&#xff0c;表格樣式會發生崩潰&#xff0c;導致表格布局異常、列寬錯亂、固定列顯示不正確等問題。 &#x1f50d; 問題分析 通過深入分析代碼&#x…

popen開啟進程,寫入數據

通過管道&#xff08;popen&#xff09;啟動 SDIWAN_WEB 進程并寫入 JSON 數據的過程可以分為以下步驟&#xff0c;結合代碼示例和關鍵注意事項進行說明&#xff1a;1. 核心代碼示例 #include <stdio.h> #include <json-c/json.h>int main() {// 1. 創建 JSON 對象…

計算機視覺的四項基本任務辨析

計算機視覺是使計算機能理解采集設備采集的圖像視頻的一門學科&#xff0c;目的是讓計算機實現人的視覺功能——對客觀世界的三維場景的感知、識別和理解。換句話說&#xff0c;要讓計算機具備通過二維圖像認識三維環境的能力。 目錄 三個階段 視覺層級 基本任務 技術難點…

iostat 系統IO監控命令學習

一、iostat 命令描述 “iostat”命令用于監測系統輸入/輸出設備的負載情況&#xff0c;其通過觀察設備處于活躍狀態的時間與平均傳輸速率之間的關系來實現這一目的。該命令會生成報告&#xff0c;這些報告可用于調整系統配置&#xff0c;以更好地平衡物理磁盤之間的輸入/輸出負…

jenkins使用ssh方式連接gitee 公鑰、私鑰配置、指紋

前言 Gitee 提供了基于 SSH 協議的 Git 服務&#xff0c;jenkins可使用ssh方式連接gitee&#xff0c;拉取代碼、提交tag等&#xff1b;使用ssh 連接&#xff0c;相比用戶名密碼方式&#xff0c;可省去因密碼變更而引起的jenkins關聯修改。 gitee生成、添加 SSH 公鑰 生成SSH…

如何在Android設備上刪除多個聯系人(3種方法)

如果您想清理安卓手機&#xff0c;或者只是想刪除舊的、不需要的聯系人&#xff0c;或者刪除多個聯系人&#xff0c;有三種有效的方法可供選擇。無論您是想手動刪除安卓手機上的聯系人&#xff0c;還是使用專用工具&#xff0c;都可以按照以下步驟操作。方法1&#xff1a;如何通…

Angular進階之十三:Angular全新控制流:革命性的模板語法升級

隨著Angular v17的發布&#xff0c;框架帶來了革命性的控制流語法&#xff0c;徹底改變了我們編寫模板的方式。這些改進不僅僅是語法糖——它們提升了性能、開發體驗和代碼可維護性。 為什么我們需要新的控制流&#xff1f; 在之前的Angular版本中&#xff0c;我們使用結構指令…

【Redis】string字符串

目錄 一.常見命令 1.1.SET 1.2.GET 1.3.MGET 1.4.MSET 1.5.SETNX 二.計數命令 2.1.INCR 2.2.INCRBY 2.3.DECR 2.4.DECYBY 2.5.INCRBYFLOAT 三 . 其他命令 3.1.APPEND 3.2.GETRANGE 3.3.SETRANGE 3.4.STRLEN 四. 字符串類型內部編碼 五. 典型使用場…