E 为什么会运行超时 因为我用的是数组吗?

觉得自己代码和ac代码没什么区别,,只是我没用map

oTATo

#include<bits/stdc++.h>
using namespace std;

void solve(){
	int n,m;
	cin>>n>>m;
	long long int a[1005][1005]={0};
	int i,j;
	long long int x[2050]={0};
	long long int s[2050]={0};
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			cin>>a[i][j];
			x[j-i+n]+=a[i][j];
			s[j+i]+=a[i][j];
		}
	}
	long long int now=0,mx=0;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			now=x[j-i+n]+s[j+i]-a[i][j];
			mx=max(now,mx);
		}
	}
	cout<<mx<<"\n";
}

int main()
{
	int t;
	cin>>t;
	while(t-->0){
		solve();
	}
    return 0; 
}

全部评论
多测害的,你在solve函数里反复开大数组导致超时。稍微改了改就过了:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=75420984
点赞 回复 分享
发布于 02-07 13:30 四川

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务