C/C++描述 第十一屆藍橋杯省賽 第一場(2020.7.5) 試題 D: 合併檢測 題目+題解

第十一屆藍橋杯省賽C/C++大學B組 第一場

  大家好,我叫亓官劼(qí guān jié ),在CSDN中記錄學習的點滴歷程,時光荏苒,未來可期,加油~博客地址爲:亓官劼的博客

本文原創爲亓官劼,請大家支持原創,部分平臺一直在盜取博主的文章!!!

博主目前僅在CSDN中寫博客,唯一博客更新的地址爲:亓官劼的博客


在這裏插入圖片描述

試題 D: 合併檢測

本題總分:10 分

【問題描述】

新冠疫情由新冠病毒引起,最近在 A 國蔓延,爲了儘快控制疫情,A 國準

備給大量民衆進病毒核酸檢測。

然而,用於檢測的試劑盒緊缺。

爲了解決這一困難,科學家想了一個辦法:合併檢測。即將從多個人(k

個)採集的標本放到同一個試劑盒中進行檢測。如果結果爲陰性,則說明這 k

個人都是陰性,用一個試劑盒完成了 k 個人的檢測。如果結果爲陽性,則說明

至少有一個人爲陽性,需要將這 k 個人的樣本全部重新獨立檢測(從理論上看,

如果檢測前 k 1 個人都是陰性可以推斷出第 k 個人是陽性,但是在實際操作中

不會利用此推斷,而是將 k 個人獨立檢測),加上最開始的合併檢測,一共使用

了 k + 1 個試劑盒完成了 k 個人的檢測。

A 國估計被測的民衆的感染率大概是 1%,呈均勻分佈。請問 k 取多少能

最節省試劑盒?

【答案提交】

這是一道結果填空題,你只需要算出結果後提交即可。本題的結果爲一個

整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。

試題D 題解

這題數學問題
設總人數爲pop,感染率p,每次k人,總市級數sum
sum = ([pop/k]+1)*(1+k*p(k+1))
這裏的[pop/k]+1)即pop/k向上取整
[pop/k]+1)這裏由於pop數量較大,所以這裏向上取整的1可以忽略,這裏直接取了pop/k,即
sum = (pop/k)*(1+kp(k+1))
將p代入sum = (pop/k)*(1+k*0.01(k+1))
sum求導 = (pop/k)(0.01k-1/k)
可得當k = 10時,sum取最小值
所以K = 10

答案:10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章