• hdu 1712 ACboy needs your help(分组背包入门)


     1 /**********************************************************
     2 题目:   ACboy needs your help
     3 链接:   http://acm.hdu.edu.cn/showproblem.php?pid=1712
     4 题意:   一开始输入n和m,n代表有n门课,m代表你有m天,然
     5          后给你一个数组,val[i][j],代表第i门课,在通过j
     6          天去修,会得到的分数。求在m天能得到的最大分数。
     7 算法:   分组背包
     8 
     9 ***********************************************************/
    10 
    11 #include<iostream>
    12 #include<cstring>
    13 using namespace std;
    14 
    15 const int mx=105;
    16 int dp[mx][mx],a[mx][mx];
    17 
    18 int main()
    19 {
    20     int n,m,i,j,k;
    21     while (cin>>n>>m)
    22     {
    23         if (n==0&&m==0) return 0;
    24         
    25         ///输入及初始化
    26         for (i=1;i<=n;i++)
    27         {
    28             for (j=1;j<=m;j++) cin>>a[i][j];
    29         }
    30         memset(dp,0,sizeof(dp));
    31     
    32        ///分组背包模板。
    33         for (i=1;i<=n;i++)
    34         {
    35            for (j=1;j<=m;j++)
    36            {
    37                for (k=0;k<=j;k++)    ///k一定要从0开始。
    38                dp[i][j]=max(dp[i][j],dp[i-1][j-k]+a[i][k]);
    39            }
    40         }
    41         cout<<dp[n][m]<<endl;
    42     }
    43 }
  • 相关阅读:
    Python爬取数据(基础,从0开始)
    个人作业——软件测评
    结对第二次作业
    结对第一次作业
    寒假作业(2/2)
    个人作业———软工实践课程总结
    Axios 介绍和使用
    软件评测
    结对第二次作业
    结对第一次——疫情统计可视化(原型设计)
  • 原文地址:https://www.cnblogs.com/pblr/p/5326023.html
Copyright © 2020-2023  润新知