• 第十一届蓝桥杯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;
    }
  • 相关阅读:
    vs 2015 安装
    NPOI封装
    c#事件求解
    一个ERP系统的磕磕碰碰
    谁动了我的产品
    MVC Sesion丢失问题
    设计模式之类关系
    免费的SqlServer优化辅助工具:SqlOptimize (原创)
    Entity Framework Linq 简单笔记
    RhinoMocks简单范例
  • 原文地址:https://www.cnblogs.com/liyexin/p/13810872.html
Copyright © 2020-2023  润新知