首页 > 代码库 > HDU 1085

HDU 1085

 

题意:

有1 2 5三数,你赋予他们各自的数量,求他们所不能组成的最小数

分析:首先想到暴力,两层循环

暴力超时,再寻他法 O(n^2)

#include "cstdio"
#include "cmath"
#include "iostream"
using namespace std;
#define LL long long

int a,b,c;
LL solve()
{
    int flag=0;
    for(LL i=0;;i++)
    {
        flag=0;
        for(LL j=0;j<=a&&1*j<=i;j++)
        {
            for(LL k=0;k<=b&&(1*j+2*k)<=i;k++)
            {
                if(floor((i-j-2*k))<=c&&(i-j-2*k)%5==0)
                {
                    flag=1;
                }
            }
        }
        if(!flag)
            return i;
    }
}
int main()
{
    while(scanf("%d%d%d",&a,&b,&c)!=EOF&&(a&&b&&c))
    {
        printf("%lld\n",solve());
    }
}

 

HDU 1085