Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143041 | C班詹皓杰 | 最优选课 | C++ | 通过 | 100 | 4 MS | 344 KB | 512 | 2024-04-11 21:58:40 |
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int w[110][110],dp[110][110]; int main(){ int n,m; while(cin>>n>>m && n!=0 && m!=0){ for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ cin>>w[i][j]; } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ for(int k = 0; k <= j; k++){ dp[i][j] = max(dp[i-1][j-k]+w[i][k],dp[i][j]); } } } cout<<dp[n][m]<<'\n'; memset(dp,0,sizeof(dp)); } return 0; }