hdu 1712(分组背包)
生活随笔
收集整理的這篇文章主要介紹了
hdu 1712(分组背包)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:有N個課程,然后選擇M天內學習的效益最大值,注意每個課程最多選取一次。
解題思路:裸的分組背包,把每門課程看做是每一組,每一組里面最多選擇一個天數,典型的分組背包。詳見背包九講
#include<iostream> #include<cstdio> #include<cstring> using namespace std;const int maxn = 105; int n,m,map[maxn][maxn]; int dp[maxn];int main() {while(scanf("%d%d",&n,&m)!=EOF){if(n == 0 && m == 0) break;for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)scanf("%d",&map[i][j]);memset(dp,0,sizeof(dp));for(int i = 1; i <= n; i++)for(int j = m; j >= 1; j--)for(int k = 1; k <= j; k++)dp[j] = max(dp[j],dp[j-k] + map[i][k]);printf("%d\n",dp[m]);}return 0; }
總結
以上是生活随笔為你收集整理的hdu 1712(分组背包)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux redhat 下让redis
- 下一篇: 支付窗开发实战-张代浩-专题视频课程