第十一屆藍橋杯b組省賽 C.合並檢測(內附詳細的樣例)


解析:

挺容易理解錯的一道題。。。k並不是總人數,只是分組人數。

括號內的一定要看。。

舉個例子吧。假設一共100個人。百分之一,那么100個人中只有一個人感染。

1:100%k==0

k=10。

那么我們需要取10次(100/10)。最壞情況,是在最后一組找到了感染者,那么前9次,用了9個試劑盒,無陽性,第十次,先用1個試劑盒,發現陽性,接下來對10個人都進行一次,又用了10個試劑盒,一共是9+1+10==20。即(100/k+k)。

2:100%k!=0

k=49

可以分成2,49,49三組。最壞情況,是在49 那一組發現了感染者。所以對前兩組,用了2個試劑盒,無陽性。第三組,1個試劑盒,發現陽性,全測,49個

一共是:2+1+49==52。推出公式:(100/k+k+1)

此題答案為10

代碼:

#include<bits/stdc++.h>
#include<cmath>
#include<map>
#define pb push_back
using namespace std;
typedef long long ll;
const int maxn=2e5+10;
int mp[40][40];
int f[40][40];
int n,m;
int main()
{
    int minn=999999;
    int ans;
    for(int i=1;i<=100;i++)
    {
        int md;
        if(100%i!=0)
        {
            md=100/i+i+1;    
        }
        else{
            md=100/i+i;
        }
        if(md<minn)
        {
            minn=md;
            ans=i;
        }
    }
    cout<<ans<<endl;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM