救救孩子吧,为什么从正方形左上角的坐标开始枚举答案就不对
查看原帖
救救孩子吧,为什么从正方形左上角的坐标开始枚举答案就不对
668320
fufuQAQ楼主2022/3/5 16:03
#include<bits/stdc++.h>//开两个数组,测试样例时候所占内存超过题目要求 
#define ll long long
using namespace std;
const int N=5010;
int a[N][N],s[N][N];
int maxn,minn;
int col,row;//row代表行,col代表列 
int main()
{
    int n,m; 
    cin>>n>>m;
//    m=min(m,N); 
    while(n--)
    {
        int x,y,z;
        cin>>x>>y>>z;
        s[x+1][y+1]=z;
        cout<<a[x+1][y+1]<<endl;
        row=max(x+1,row);//行 
        col=max(y+1,col);//列 
//        row=max(row,m);
//        col=max(col,m);
    }
    for(int i=1;i<=row;i++)
    {
    	for(int j=1;j<=col;j++)
    	{
    		s[i][j]=s[i-1][j]+s[i][j-1]+s[i][j]-s[i-1][j-1];
//    		cout<<i<<" "<<j<<" "<<s[i][j]<<endl;
		}
	}	
	
    maxn=-1e9;
    for(int i=1;i<=row;i++)
    {
    	for(int j=1;j<=col;j++)
    	{
    		maxn=max(maxn,s[i+m][j+m]-s[i+m][j]-s[i][j+m]+s[i][j]);
    		cout<<maxn<<" ";
		}
		cout<<endl;
	}
    cout<<maxn;
    return 0;
}
2022/3/5 16:03
加载中...