zoukankan      html  css  js  c++  java
  • NYOJ 331 完全背包

    1  
    2 #include<iostream>
    3 #include<cstdio>
    4 #include<memory.h>
    5 using namespace std;
    6 #define max(a,b) a>b?a:b
    7 #define MAX 50005
    8 #define M 2005
    9 
    10 struct goods{
    11     int c;  //重量
    12     int w;  //价值
    13 }a[M];
    14 
    15 int dp[MAX];
    16 
    17 int main()
    18 {
    19 //    freopen("in.txt","r",stdin);
    20     int t,i,j,N,m;
    21     scanf("%d",&t);
    22     while(t--)
    23     {
    24         scanf("%d%d",&m,&N);
    25         for(i=1; i<=N; ++i)
    26             dp[i] = -500000000;
    27         dp[0] = 0;
    28         for(i = 0; i !=m; ++i)
    29         {
    30             cin>>a[i].c>>a[i].w;
    31             for(int k = 0; k < i; ++k)
    32                 if(a[k].c <= a[i].c && a[k].w >= a[i].w)
    33                      break;
    34             if(a[i].c > N) continue;
    35             for(j = a[i].c; j <= N; ++j)
    36                 dp[j] = max(dp[j], dp[j - a[i].c] + a[i].w);
    37         }
    38         if(dp[N] > 0)
    39             printf("%d\n",dp[N]);    
    40         else
    41             printf("NO\n");
    42     }
    43     return 0;
    44 }                
  • 相关阅读:
    线程中测试getName方法和getId方法
    编写一个线程改变窗体的颜色
    创建两个线程分别输出1-100
    输出一个目录中的内容
    file占用字节
    MAP集合选出最大值
    使用增强for循环遍历集合
    数据框中的基本操作
    列表的基本操作
    因子的基本操作
  • 原文地址:https://www.cnblogs.com/yaling/p/3035234.html
Copyright © 2011-2022 走看看