• 编程题--装满篮子


    2 装满篮子

    假设一个篮子最大载重为W,要求从多个不同重量物品中挑选出部分,使得其重量之和刚好等于W。

    输入若干个正整数,其中第一个数值为篮子载重,后面若干个数值表示不同物品的重量,请判断是否存在方案能刚好装满篮子,存在装满篮子的方案输出YES,并按照输入顺序输出装满篮子的物品重量,以空格隔开;若不存在则输出NO。

    备注:本题中只存在一种装满方案。

    理解为背包问题:

    C语言代码:

    #include<stdio.h>

    void main()

    {

             int i,j,data[100],backet[100],k=0,w,m[100][100];

            

             while(scanf("%d",&data[k])!=EOF)  //输入ctrl+z停止输入

             {k++;}

             w=data[0];  //篮子总重量

             int n=k-1;

             for (i=1;i<k;i++)

             {

                       backet[i-1]=data[i];  //k-1个物品的重量

             }

            

             for(i=0;i<=n;i++)

             {

                       for(j=0;j<=w;j++)

                       {

                                m[i][j]=0;

                       }

             }

             for(i=1;i<=n;i++)

             {

                       for(j=1;j<=w;j++)

                       {

                                if(j>=backet[i-1])

                                {

                                         if(m[i-1][j]<m[i-1][j-backet[i-1]]+backet[i-1])

                                         {

                                                   m[i][j] = m[i-1][j-backet[i-1]]+backet[i-1];

                                         }

                                         else

                                         {

                                                   m[i][j] = m[i-1][j];

                                         }                

                                }

                                else

                                {

                                         m[i][j] = m[i-1][j];

                                }

                       }

             }

             if (m[n][w]==w)

             {

                       printf("YES");

             }

             else

             {

                       printf("NO");

             }

                               

    }

  • 相关阅读:
    EntityFramework之领域驱动设计实践
    Entity Framework 学习初级篇1EF基本概况(入门)
    整理一下Entity Framework的查询
    Unity(六):使用场景Ⅲ:用于依赖注入(上)
    比较NHibernate和Entity Framework
    contentclass对应的一些值
    IE8访问架设在Windows Server 2008(R2)的SharePoint Server 2007是验证框问题
    创建一个图文并茂的调查
    SharePoint回环检查(Loopback Check)相关问题
    Something you need to know about Content Deployment in SharePoint
  • 原文地址:https://www.cnblogs.com/jhding/p/5846696.html
Copyright © 2020-2023  润新知