程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu Bone Collector(背包)

hdu Bone Collector(背包)

編輯:C++入門知識

hdu Bone Collector(背包)


二位數組做法;

 

#include
#include
#define M 1009
typedef struct pack
{
    int cost;
    int val;
}PACK;
int f[M][M];
#include
#include
#define M 1009
typedef struct pack
{
    int cost;
    int val;
}PACK;
int main()
{
    int cas,n,v,i,j;
    int f[M];
    PACK a[M];
    scanf("%d",&cas);
    while(cas--){
        scanf("%d%d",&n,&v);
        memset(f,0,sizeof(f));
        for(i=1;i<=n;i++)
            scanf("%d",&a[i].val);
        for(i=1;i<=n;i++)
            scanf("%d",&a[i].cost);
        for(i=1;i<=n;i++)
            for(j=v;j>=a[i].cost;j--)
            if(f[j]

int main(){ int cas,n,v,i,j; PACK a[M]; scanf("%d",&cas); while(cas--){ scanf("%d%d",&n,&v); memset(f,0,sizeof(f)); for(i=1;i<=n;i++) scanf("%d",&a[i].val); for(i=1;i<=n;i++) scanf("%d",&a[i].cost); for(i=1;i<=n;i++) for(j=0;j<=v;j++) if(j-a[i].cost>=0 && f[i-1][j]
 < f[i-1][j-a[i].cost]+a[i].val) f[i][j]=f[i-1][j-a[i].cost] + a[i].val; else f[i][j]=f[i-1][j]; printf("%d\n",f[n][v]); } return 0;}

 



一位數組:

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved