讨论 / 分组背包题解
rqnoj_zhuce 2013-11-18 06:20:27
点我顶贴 收藏 删除
/***************************

* 详解:http://www.nocow.cn/index.php/%E5%88%86%E7%BB%84%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98

***************************/

#include <iostream>

using namespace std;

int main()

{

int k,v,i,j;

int t,n,tm;

int a[11][101] = {(0,0)}, f[101]={0};

//read data

cin>>t>>n>>tm;

for (i=1; i<=n; i++)

{

for (j=1; j<=t; j++)

{

cin>>a[i][j];

}

}

for (k=1; k<=n; k++)

{

for (v=t; v>0; v--)

{

for (i=1; i<=v-tm; i++)

{

f[v] = f[v]>f[v-i-tm]+a[k][i] ? f[v] : f[v-i-tm]+a[k][i];

}

}

}

//output result

cout<<f[t];

return 0;

}

查看更多回复
提交回复