QUSTOJ1784 C 机器分配(DP)

来源:互联网 发布:mac标点 编辑:程序博客网 时间:2024/06/06 05:29

题目给出矩阵是s[i][j]代表第i个公司分配j台机器的收益,因此可以设f[i][j]为i个公司分配j台机器的最大总收益,枚举k,f[i][j]可以取i-1个公司分配k台机器的最大受益加上第i个公司分配j-k台机器的和的最大值。

这不是区间动归??……


这是代码:

#include <bits/stdc++.h>using namespace std;int m,n,s[1001][1001],f[1001][1001];void init(){  int i,j;  scanf("%d %d",&m,&n);  for(i=1;i<=n;i++)for(j=1;j<=m;j++)  scanf("%d",&s[i][j]);}void solve(){  int i,j,k,x;  for(i=1;i<=n;i++)for(j=0;j<=m;j++)  for(k=0;k<=j;k++)  {x=f[i-1][k]+s[i][j-k];f[i][j]=max(f[i][j],x);  }  printf("%d",f[n][m]);}int main(){  init();  solve();  return 0;}


0 0
原创粉丝点击