zoukankan      html  css  js  c++  java
  • 定义代码Hdu 1058 Humble Numbers(dp)

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

        目题接链地址http://acm.hdu.edu.cn/showproblem.php?pid=1058

        如果一个数是Humble Number,那么它的2倍,3倍,5倍,7倍仍然是Humble Number

        定义F[i]为第i个Humble Number

        F[n]

        定义F[i]为第i个Humble Number

        F[n]=min(2*f[i],3*f[j],5*f[k],7*f[L]), i,j,k,L在被选择后互相挪动

        每日一道理
    只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。

        (通过此题懂得到数组有序性特)    

        /*

        这几天测验温习啊,,但是还是要持坚做一道dp的题在睡觉啊,这个还是比较简单的dp题了吧。直接上代码了。

        */

        

    #include <cstdio>
    const int maxn=5843;
    int a[maxn],num;
    void init()
    {
        //printf("init\n");
        int i,k,l,m,n,x[4],minx;
        m=n=k=l=1;
        a[0]=1;
        for(i=1;i<maxn;i++)
        {
            x[0]=a[m-1]*2;
            x[1]=a[n-1]*3;
            x[2]=a[k-1]*5;
            x[3]=a[l-1]*7;
            minx=x[0];
            if(x[1]<minx)minx=x[1];
            if(x[2]<minx)minx=x[2];
            if(x[3]<minx)minx=x[3];
            a[i]=minx;
            //printf("a[%d]=%d\n",i,a[i]);
            if(minx==x[0])m++;
            if(minx==x[1])n++;
            if(minx==x[2])k++;
            if(minx==x[3])l++;
        }
    }
    int main()
    {
        init();
        while(~scanf("%d",&num),num)
        {
            if(num % 10 == 1 && num % 100 != 11)
                printf("The %dst humble number is %d.\n",num,a[num-1]);
            else if(num % 10 == 2 && num % 100 != 12)
                printf("The %dnd humble number is %d.\n",num,a[num-1]);
            else if(num % 10 == 3 && num % 100 != 13)
                printf("The %drd humble number is %d.\n",num,a[num-1]);
            else
                printf("The %dth humble number is %d.\n",num,a[num-1]);
        }
    }

    文章结束给大家分享下程序员的一些笑话语录: 警告
    有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
    小伙子说,“没事儿,我是一个程序员”。
    那妇女说,“这又怎样?”
    程序员说,“我们从来不关心 Warning,只关心 Error”

  • 相关阅读:
    验证身份证
    base64.js
    mysql常用操作
    drop、truncate和delete的区别
    安装mysql
    一些常用计算
    nuxt+vant+rem项目构建
    vue2安装sass 预编译
    vant ui rem配置流程
    关于vue项目和内嵌iframe页面之间的通信问题
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3061685.html
Copyright © 2011-2022 走看看