題意:
有乙個車站,兩個人想要在這個車站見面,第乙個人會在t1到t2之間的任意乙個時刻到(時間上任意一點概率一樣),並且停留w時間,第二個人是s2到s2的時間段到,停留也是w,問兩個人的見面概率是多少?
思路:這個應該算是個比較經典的問題了吧,感覺在那看到過,我們建立乙個直角座標系,t1<=x<=t2 ,s1<=y<=s2這樣構成的這個矩形就是所有的概率區間,然後畫一條x=y的直線,然後把這個直線沿著x=y方向想下和向上平移w得到乙個區間,這個區間和句型重疊的部分就是見面的概率區間,用這個面積除以矩形的面積就是見面概率,求面積的時候我的方法比較笨,y=x+w,y=x-w這兩條直線分別和四條線段求交點,然後在根據得到的四個交點的位置分布,列舉求出答案,我寫的比較麻煩!
#include
#include
int main ()
//4x = s1 - w;
if(x >= t1)
//3y = t2 + w;
if(y <= s2)
//2x = s2 - w;
if(x <= t2)
mk = 0;
// 1
y = t1 - w;
if(y >= s1)
//4x = s1 + w;
if(x >= t1)
//3y = t2 - w;
if(y <= s2)
//2x = s2 + w;
if(x <= t2 )
if(x1 == x11 && y1 == y11 && x2 == x22 && y2 == y22 && x1 ==x2 && y1 == y2)
double m1 ,m2;
double m = (t2 - t1) * (s2 - s1);
if(mark1[1] && mark1[2]) m1 = (s2 - y1) * (x11 - t1) / 2;
else if(mark1[1] && mark1[3]) m1 = ((s2 - y1) + (s2 - y11)) * (t2 - t1) / 2;
else if(mark1[4] && mark1[2]) m1 = ((x1 - t1) + (x11 - t1)) * (s2 - s1) / 2;
else if(mark1[4] && mark1[3]) m1 = m - (y11 - s1) * (t2 - x1) / 2;
if(mark2[1] && mark2[2]) m2 = m - (s2 - y2) * (x22 - t1) / 2;
else if(mark2[1] && mark2[3]) m2 = m - ((s2 - y2) + (s2 - y22)) * (t2 - t1) / 2;
else if(mark2[4] && mark2[2]) m2 = m - ((x2 - t1) + (x22 - t1)) * (s2 - s1) / 2;
else if(mark2[4] && mark2[3]) m2 = (y22 - s1) * (t2 - x2) / 2;
double ans = (m - (m1 + m2)) / m;
printf("case #%d: %.8lf\n" ,cas ++ ,ans);
}return 0;
}
概率(和朋友會面,UVA 11722)
橫座標t表示你的時間,縱座標s表示你朋友的時間。因為你的火車會在 t1,t2 時間段內等概率的到達,你朋友的火車會在 s1,s2 時間段內等待率的到達。所以由t t1,t t2,s s1,s s2四條直線圍成的矩形就是概率空間,設這個區域為a。點 t,s 在矩形內表示你和你朋友分別在t時刻與s時刻剛...
uva 11427 玩紙牌 概率
題目 思路見注釋 dp i j dp i 1 j 1 p dp i 1 j 1 p 分析狀態轉移方程的要點 1.遞推每次只要進步一點點 見 2.狀態決定了有哪些決策。第i天要麼 成功 要麼 失敗 另加 還要巧妙地賦予dp x 意義,並充分利用。const int inf 0x3f3f3f3f con...
uva 10900 富翁 連續概率
針對具體問題進行分類討論,需要積分的可能通過分類和取平均值就對其進行了化簡。注意細節,比如當p0小於t的時候。數學問題常用到遞推,高階的思想。題解 最大期望取決於概率,取max 2 i,p d i d i 是回答第i個問題後的最大期望,分類求期望,然後根據邊界d n 遞推回d 0 得到結果。incl...