题意
解析
f[i][j]代表第i幅画最后一次被j画了所花的时间,受到两个的限制,画当前这个画的前一个画家画完了,当前这个画家画完了前面那张画了,取max。
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e4 + 10,M = 1e6 + 10;
int t[N][10],n,m,a[N],b[N],s[N],f[N][10];
int main(){
scanf("%d %d",&m,&n);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
scanf("%d",&t[i][j]);//第j个画家画第i幅画
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
f[i][j] = max(f[i][j-1] + t[i][j],f[i-1][j] + t[i][j]);
}
}
for(int i=1;i<=m;i++){
printf("%d ",f[i][n]);
}
// f[i][j] 第i幅画最后一次被j画了所花的时间
return 0;
}
标签:10,1300,画家,int,CF416B,long
From: https://www.cnblogs.com/dtdbm/p/17011538.html