由於自己初學概率期望,學的都是簡單題,就不分開寫部落格了.
非常入門的概率期望題目。但因為題目意思比較噁心.
一共有\(2 * n\)個鞋頭,第\(i\)次操作前還有\(2 * n - (i - 1) * 2\)個鞋頭,由於我們選出乙個後,它不能和自己綁,也不能和和它在同一條鏈上的綁。
所以
#include#include#includeusing namespace std;
const int n = 1e3 + 3;
double f[n];
int n;
double s;
int main()
printf("%.6lf\n",f[n]);
return 0;
}
較簡單概率期望dp,然而我還是不會做.
概率期望dp在很多時候都應當倒推.
這道題目網上題解的狀態定義比較模糊,蒟蒻看不懂,在這裡說一下自己的理解
\(f_\)表示當前桌子上還有\(i\)個紅牌未翻開\(j\)個黑牌未被翻開的,你的期望最優得分(再多得多少分)
#include#include#include#include#includeusing namespace std;
const int n = 5e3 + 3;
double f[2][n];
int cnt = 0;
int b,r;
int n;
double ans;
int main()
} printf("%.6lf\n",f[cnt][b] - 5e-7);
return 0;
}
同樣是概率期望的入門題目.
錯誤:入度統計反了
我們依舊考慮建反圖逆推\(f_i\)表示\(i - n\)的期望路徑長度
倒著dp即可
#include#include#include#include#include#includeusing namespace std;
const int n = 3e5 + 3;
int tot,n,m;
double f[n];
int head[n],in[n],d[n];
queue q;
struct edgee[n];
inline void add(int x,int y,int z)
inline void spfa()
} printf("%.2lf\n",f[1]);
}int main()
q.push(n);
spfa();
return 0;
}
首先放一下自己的錯誤:滾動陣列將\(f_=.....\)寫成了\(f_ += .....\)進行轉移
依舊是比較基礎的概率期望的dp
設\(f_\)表示第\(i\)次操作完成之後在\(j\)位置的概率
注意當\(j - w\)和\(j + w\)越界的時候特判一下。細節見**
#include#include#include#includeusing namespace std;
const int n = 205;
double f[2][n];
inline int read()
while(isdigit(ch))
return v * c;
}int main()
} for(int i = l;i <= r;++i) ans += f[cnt][i];
printf("%.4lf\n",ans);
} return 0;
}
這道題目沒有犯sb錯誤
我們想一下
設\(f_\)表示已經發現\(i\)種漏洞已經在\(j\)個系統發現了漏洞達到\(f_\)的期望天數
借用這位大佬的圖
那麼結合上面的圖
之後我們設
我們將上式化開
將\((1 - p_4)\)除到右邊就好了
#include#include#include#define p1 (1.0 * (n - i) * (s - j) / (n * s))
#define p2 (1.0 * (n - i) * j / (n * s))
#define p3 (1.0 * i * (s - j) / (n * s))
#define p4 (1.0 * i * j / (n * s))
using namespace std;
const int n = 1e3 + 3;
double f[n][n];
int main()
printf("%.4lf\n",f[0][0]);
return 0;
}
一道非常好的概率期望dp
我們設擲出和\(s\)的機率為\(p_s\)(特別的,將\(a,b,c\)那一組設為\(p_0\)),\(f_i\)為獲得i分數的期望次數
很明顯的轉移方程(倒推)
之後我們發現了乙個非常噁心的事情。就是每次轉移都和\(f_0\)有關,而\(f_0\)是我們求得最終答案
我們試著化簡一下,因為每個\(f\)的式子都與\(f_0\)有關我們設
那麼有我們將上式帶回原式子
試著整理一下
又因為我們就可以得到
又因為所以
我們得到了\(a\)與\(b\)的逆推式子,又知道\(f_0\)與\(a_0\),\(b_0\)的關係,就好做
#include#include#include#includeusing namespace std;
const int n = 1005;
double f[n];
double x[n],y[n],p[n];
int k1,k2,k3,a,b,c,n;
int main()
printf("%.15lf\n",y[0] / (1 - x[0]));
} return 0;
}
學習筆記 概率期望
省流 期望 概率 times 權值 好,開始看題。前置知識 alpha 1 2 alpha 2 2 times alpha 1 alpha 1 3 alpha 3 3 times alpha 2 3 times alpha 1 題目要求長度 n 的 0 1 串中 1 串長度的立方期望,考慮分步驟求解...
概率與期望 學習筆記
1.條件概率 定義 b 條件下 a 事件發生的概率為 p a b 有 p a b frac 全概率公式 定義 b 是 omega 的乙個劃分 則有 p a sum p b 貝葉斯公式 p a b frac 2.期望的線性性 e x y e x e y e cx ce x e xy e x e y 隨...
期望概率做題筆記
對於求 p i 可以參照第二種情況的思考方式,所以 p i sum 考慮到複雜度可能比較大,需要預處理一下 1 p i 的冪。x cf16e fish 概率狀壓dp 還是第一次見 看到 n le 18 考慮狀壓。設 f s 表示狀態 s 出現的概率,那麼可以列舉乙隻在狀態 s 中活著的魚 i 再列舉...