藍橋杯 P2719 搞笑世界盃
題目背景
落谷網打卡演算法題第二天。
很久很久以後,一次世界盃。
題目描述
隨著世界盃小組賽的結束,法國,阿根廷等世界強隊都紛紛被淘汰,讓人心痛不已. 於是有人組織了一場搞笑世界盃,將這些被淘汰的強隊重新組織起來和世界盃一同比賽.你和你的朋友欣然去購買球票.不過搞笑世界盃的球票出售方式也很特別,它們只准備了兩種球票.A 類票------免費球票 B 類票-------雙倍價錢球票.購買時由工作人員通過擲硬幣決定,投到正面,的買A類票, 反面的買B類票.並且由於是市場經濟,主辦方不可能倒貼錢,所以他們總是準備了同樣多的A類票和B類票.你和你的朋友十分幸運的排到了某場精彩比賽的最後兩個位置。
這時工作人員開始通過硬幣售票.不過更為幸運的是當工作人員到你們面前時他發現已無需再擲硬幣了,因為剩下的這兩張票全是免費票。
你和你的朋友在欣喜之餘,想計算一下排在隊尾的兩個人同時拿到一種票的概率是多少(包括同時拿A 類票或B類票) 假設工作人員準備了2n 張球票,其中n 張A類票,n 張B類票,並且排在隊伍中的人每人必須且只能買一張球票(不管擲到的是該買A 還是該買B)。
輸入格式
輸入檔案僅一行,包含球票數2n . 其中,0<=n<=1250 ,n 為整數。
輸出格式
輸出檔案只包含一個數,為拿到同一種票的概率,精確到小數點後4 位。
輸入輸出樣例
解題思路
反向求解,求最後兩張票是不同的概率P,然後用1-P得出最後兩張票是相同的概率。
從2n-2中選出n-1張都是A票的概率 x 剩下的n-1張票都是B票的概率,因為每種票的概率都是0.5,因此可以得出公式:
程式碼
#include<iostream>
using namespace std;
int n;
double ans = 1.0;
int main(){
scanf("%d",&n);
n >>= 1;
for(int i=1;i<n;i++) ans = ans*(i+n-1)/(i<<2);
printf("%.4f\n",1-ans);
return 0;
}
PS:思路是借鑑的落谷題解中大佬的題解,題目是落谷網中搜尋藍橋杯關鍵字的普及(藍橋杯比賽中難度最低)題目。
相關文章
- 藍橋杯
- 藍橋杯-分巧克力
- 藍橋杯-N皇后
- 藍橋杯真題
- 藍橋杯 買瓜
- 藍橋杯 剪格子
- 藍橋杯-長草(BFS)
- 藍橋杯-日期問題
- 藍橋杯-帶分數
- 藍橋杯-翻硬幣
- 藍橋杯-座次問題
- 藍橋杯 計算方程
- 藍橋杯-螞蟻感冒
- 藍橋杯-排列序數
- 如何準備藍橋杯
- 藍橋杯年號字串字串
- 藍橋杯考點整理
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯訓練2
- 藍橋杯 整數拼接
- 藍橋杯注意的地方
- 藍橋盃賽前突擊
- 2013年藍橋杯真題
- 藍橋杯-日誌統計
- 藍橋杯-走迷宮(BFS)
- 藍橋杯模板(二)python組Python
- 藍橋杯模板(三)python組Python
- 太陽(藍橋杯14屆)
- 藍橋杯-合併數列
- 藍橋杯-班級活動
- 藍橋杯-波動數列
- 藍橋杯-k倍區間
- 藍橋杯-地宮取寶
- 藍橋杯javaB組備賽Java
- 藍橋杯全排列專題
- 藍橋杯學習路線
- 密碼脫落——藍橋杯密碼
- 藍橋杯——暴力列舉篇