zoukankan      html  css  js  c++  java
  • uva 10717 Mint

    数学题:考查lcm和gcd

    题意:输入n,m,表示有n种不同的硬币,m张桌子。下面n行是n种硬币的数值,接下来m行是每个桌子高度。每个桌子都固定有4个脚而且高度一样。用硬币来组成桌脚,要求一只脚要用一样的硬币。对于每个桌子输出两个数字,一个是小于等于该桌子高度的最大值,一个是大于等于桌子高度的最小值

    就是枚举n个硬币中的4个,然后求4个硬币的最小公倍数,然后将这个lcm翻倍,只要满足 “一个是小于等于该桌子高度的最大值,一个是大于等于桌子高度的最小值”

    #include <cstdio>
    #include <cstring>
    #define N 55
    #define M 15
    #define INF 0x3f3f3f3f
    int num[5];  //枚举4个数字
    int h[N];  //所有硬币
    int t;  //桌子的高度
    int n,m;
    int LCM,L,R;
    
    int gcd(int a ,int b)
    {
        return b==0?a:gcd(b,a%b);
    }
    int lcm(int a ,int b)
    {
        int tmp;
        if(a<b) 
        { tmp=a; a=b; b=tmp; }
        return a/gcd(a,b)*b;
    }
    void solve()
    {
        LCM=num[0];
        for(int i=1; i<4; i++)
            LCM=lcm(LCM,num[i]);
        //printf("LCM=%d\n",LCM);
        int l,r,i;
    
        for(i=0; LCM*(i+1)<t; i++) ;
    
        if(LCM*(i+1)==t)
            l=r=LCM*(i+1);
        else
        {
            l=LCM*i;
            r=LCM*(i+1);
        }
    
        if(l>L) L=l;
        if(r<R) R=r;
    }
    void dfs(int p , int c)
    {
        if(c==4)  //枚举得到了4个硬币
        {
            solve();
            return ;
        }
        for(int i=p+1; i<=n-4+c;i++)
        {
            num[c]=h[i];
            dfs(i,c+1);
        }
        return ;
    }
    int main()
    {
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            if(!n && !m) break;
            for(int i=0; i<n; i++)
                scanf("%d",&h[i]);
    
            for(int c=0; c<m; c++)
            {
                scanf("%d",&t);
                L=-INF;  R=INF;
                for(int i=0; i<=n-4; i++)
                {
                    num[0]=h[i];
                    dfs(i,1);
                }
                printf("%d %d\n",L,R);
            }
    
        }
        return 0;
    }
  • 相关阅读:
    甲醛(Formaldehyde)
    Node Embedding
    受限玻尔兹曼机(RBM, Restricted Boltzmann machines)和深度信念网络(DBN, Deep Belief Networks)
    长尾分布,重尾分布(Heavy-tailed Distribution)
    SVD分解与数据压缩
    Batch Normailzation
    Attention Mechanism
    新装的Ubuntu在Nvidia显卡上分辨率不对
    人工神经网络(Artificial Neural Network)
    Xdebug+phpstorm配置
  • 原文地址:https://www.cnblogs.com/scau20110726/p/2879137.html
Copyright © 2011-2022 走看看