• hdu 3732


    #include<stdio.h>
    #include<string.h>
    int n,m,dp[10001];
    int max(int a,int b) {
     return a>b?a:b;
    }
    void yi(int val,int co) {
     int i;
     for(i=m;i>=co;i--)
      dp[i]=max(dp[i],dp[i-co]+val);
    }
    void duo(int val,int co) {
     int i;
     for(i=co;i<=m;i++)
           dp[i]=max(dp[i],dp[i-co]+val);
    }
    void seach(int val,int co,int num) {
     if(co*num>m)
      duo(val,co);
     else {
      int k=1;
      while(k<num) {
       yi(val*k,co*k);
       num-=k;
       k*=2;
      }
      yi(num*val,co*num);
     }
    }
    int main() {
     int p[11][11],i,j,k,t;
     char s[101];
     while(scanf("%d%d",&n,&m)!=EOF)  {
      memset(p,0,sizeof(p));
      int a,b;
      while(n--) {
       scanf("%s%d%d",s,&a,&b);
       p[a][b]++;
      }
      memset(dp,0,sizeof(dp));
       for(i=0;i<=10;i++)
        for(j=0;j<=10;j++)
         if(p[i][j])
          seach(i,j,p[i][j]);
         printf("%d ",dp[m]);
     }
     return 0;
    }

    另附详解地址:http://qianmacao.blog.163.com/blog/static/203397180201222591228542/

  • 相关阅读:
    字符串,列表,集合,字典,元组方法
    内置对象方法
    学生管理系统(2)
    1207
    PSP总结
    1130
    1123
    1118
    1109
    评论
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4411002.html
Copyright © 2020-2023  润新知