時間限制: 1 s
空間限制: 128000 kb
題目等級 : 鑽石 diamond
題解
隨著世界盃小組賽的結束,法國,阿根廷等世界強隊都紛紛被淘汰,讓人心痛不已. 於是有
人組織了一場搞笑世界盃,將這些被淘汰的強隊重新組織起來和世界盃一同比賽.你和你的朋
友欣然去購買球票.不過搞笑世界盃的球票**方式也很特別,它們只準備了兩種球票.a 類
票------免費球票 b 類票-------雙倍價錢球票.購買時由工作人員通過擲硬幣決定,投到正面
的買a類票, 反面的買b類票.並且由於是市場經濟,主辦方不可能倒貼錢,所以他們總是準備
了同樣多的a類票和b類票.你和你的朋友十分幸運的排到了某場精彩比賽的最後兩個位置.
這時工作人員開始通過硬幣售票.不過更為幸運的是當工作人員到你們面前時他發現已無需
再擲硬幣了,因為剩下的這兩張票全是免費票。
你和你的朋友在欣喜之餘,想計算一下排在隊尾的兩個人同時拿到一種票的概率是多少
(包括同時拿a 類票或b類票) 假設工作人員準備了2n 張球票,其中n 張a類票,n 張b類票,並且排在隊伍中的人每人必須且只能買一張球票(不管擲到的是該買a 還是該買b).
輸入描述 input description
輸入檔案僅一行,包含球票數2n . 其中,0輸出描述 output description
輸出檔案只包含乙個數,為拿到同一種票的概率,精確到小數點後4 位。
樣例輸入 sample input
256
樣例輸出 sample output
0. 9500
資料範圍及提示 data size & hint
en 分類標籤 動態規劃
遞推數論
又是一道數學題, 不過考查的是遞推技巧, 若能想出狀態定義, 題目就迎刃而解了;
考試時沒來得及看, 後來聽了cl大佬的講解, 豁然開朗, 原來這麼簡單呀!
#include#include#include#includeusing namespace std;
const int maxn=1500;
const int inf=0x3f3f3f3f;
int n;
double f[maxn][maxn];
// f[i][j]表示在第 i+j 個人, 選了i個a和j個b的概率;(就這麼簡單的一句話, 妙極)
int main()
} printf("%.4lf", 1.0-f[n-1][n-1]); //除去最後兩人不同的情況, 就是相同的情況;
return 0;
}
其實我們還可以想一想輸出f[n-2][n]+f[n][n-2]對不對呢?
表面上看沒有問題,兩個人票相同不就是到倒數第二個人的時候, 剩下兩張a或b, 兩種情況嗎?
其實, 仔細想一想就會發現, 這兩種情況並沒有包含所有的情況, 道理很簡單, 有可能前一半的人把a都買了, 或者。。。
只要在倒數第二個人之前買完了a or b的情況都應該算的;
還是乖乖的輸出 1.0-f[n-1][n-1] 吧 !
Codevs 1060 搞笑世界盃
1060搞笑世界盃 時間限制 1 s空間限制 128000 kb題目等級 鑽石 diamond 題目描述description 隨著世界盃小組賽的結束,法國,阿根廷等世界強隊都紛紛被淘汰,讓人心痛不已.於是有 人組織了一場搞笑世界盃,將這些被淘汰的強隊重新組織起來和世界盃一同比賽.你和你的朋 友欣然...
搞笑世界盃
有n張a類票 n張b類票,在兩張票都有的情況下,工作人員會以1 2的概率發票,否則就直接發僅存的那類票。現在請問最後兩張發出去的票是相同種類的概率是多少?n 2000 概率型dp 定義 dp i j 為還剩i張a類票,j張b類票,最後兩張相同的概率。易得出dp i 0 dp 0 i 1.0 i 2 ...
歷屆世界盃的搞笑故事
報紙開玩笑 第四屆世界盃賽上美國隊爆冷門以1 0擊敗英格蘭隊,英國記者發稿回去時,編輯認為記者開玩笑,自己還把比數改為1 10,英格蘭贏,舉世譁然。球王的哀求 習慣上,冠軍爭奪戰勝負分曉時,有些球迷會衝下來擁抱球員,甚至從球員身上拿點東西當紀念。然而第九屆世界盃賽巴西隊奪得冠軍時,球迷太狂熱了,他們...