社区讨论

求助-怎么优化?

P7074[CSP-J 2020] 方格取数参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@locyo52z
此快照首次捕获于
2023/10/30 21:54
2 年前
此快照最后确认于
2023/11/05 08:15
2 年前
查看原帖
CPP
//T470
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf=0x3f3f3f3ff3f3f3f;
ll dp[1010][1010];
ll a[1010][1010];
ll st[1010];
ll n,m;
int main(){
//	freopen("number.in","r",stdin);
//	freopen("number.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			scanf("%lld",&a[i][j]);
            dp[i][j]=-inf;
		}
	}
	dp[n-1][m-1]=a[n-1][m-1];
	for(int i=n-2;i>=0;i--){
		dp[i][m-1]=a[i][m-1]+dp[i+1][m-1];
	}
	for(int j=m-2;j>=0;j--){
		memset(st,0,sizeof st);
		for(int i=0;i<n;i++){
			st[i]=st[max(0,i-1)]+a[i][j];
		}
		for(int i=0;i<n;i++){
			for(int ii=0;ii<n;ii++){
				dp[i][j]=max(dp[i][j],dp[ii][j+1]+st[max(ii,i)]-st[min(ii,i)]+a[min(ii,i)][j]);
			}
		}
	}
	cout<<dp[0][0];
	return 0;
}
TLE 70

回复

5 条回复,欢迎继续交流。

正在加载回复...