zoukankan      html  css  js  c++  java
  • P1757 通天之分组背包 / hdu1712 ACboy needs your help (分组背包入门)

    P1757 通天之分组背包

    hdu1712 ACboy needs your help

    hdu1712题意:A[i][j]表示用j天学习第i个课程能够得到A[i][j]的收益,求m天内获得的收益最大值,一天只能上一节课(转)。

    分组背包套路:

    for(int i=1;i<=组数;++i)
        for(int j=容量;j>=0;--j)
            for(int k=1;k<=第i组元素个数;++k)
                …………

    保证一组只选<=1个

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #define re register
     5 using namespace std;
     6 int max(int &a,int &b){return a>b?a:b;}
     7 int n,m,a[102][102],f[102];
     8 int main(){
     9     while(~scanf("%d%d",&n,&m)){
    10         if(!n&&!m) break;
    11         for(re int i=1;i<=n;++i)
    12             for(re int j=1;j<=m;++j)
    13                 scanf("%d",&a[i][j]);
    14         memset(f,0,sizeof(f));
    15         for(re int i=1;i<=n;++i)
    16             for(re int j=m;j>=0;--j)
    17                 for(re int k=1;k<=j;++k)
    18                     f[j]=max(f[j],f[j-k]+a[i][k]);
    19         printf("%d
    ",f[m]);
    20     }return 0;
    21 }
    hdu1712 code
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #define re register
     5 using namespace std;
     6 int max(int &a,int &b){return a>b?a:b;}
     7 int n,m,f[1002];
     8 int len[1000],a[1002][1002],b[1002][1002];
     9 int main(){
    10     int q1,q2,q3,mc;
    11     while(~scanf("%d%d",&m,&n)){
    12         memset(len,0,sizeof(len));
    13         memset(f,0,sizeof(f));
    14         mc=0;
    15         for(re int i=1;i<=n;++i){
    16             scanf("%d%d%d",&q1,&q2,&q3);
    17             mc=max(mc,q3);
    18             a[q3][++len[q3]]=q1;
    19             b[q3][len[q3]]=q2;
    20         }
    21         for(re int i=1;i<=mc;++i)
    22             for(re int j=m;j>=0;--j)
    23                 for(re int u=1;u<=len[i];++u)
    24                     if(j>=a[i][u])
    25                         f[j]=max(f[j],f[j-a[i][u]]+b[i][u]);
    26         printf("%d
    ",f[m]);
    27     }return 0;
    28 }
    P1757 code
  • 相关阅读:
    python 对比学习
    支付宝
    springboot logback
    ngnix学习视频
    node学习
    puppeteer 相关知识
    Dota2App--第三天
    Dota2APP--第二天
    Dota2APP--第一天
    iOS ---进阶之摇一摇
  • 原文地址:https://www.cnblogs.com/kafuuchino/p/9829376.html
Copyright © 2011-2022 走看看