第十一屆藍橋杯省賽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