5 条题解

  • -2
    @ 2023-5-2 20:20:17
    #include <iostream>
    using namespace std;
    int n,r;
    int cnt;
    int maxx = -1;
    int XMAX = -1;
    int YMAX = -1;
    int f[5002][5002];
    int main()
    {
    	cin>>n>>r;
    	XMAX = r;
    	YMAX = r;
    	for(int i=0;i<n;i++)
    	{
    		int x,y,w;
    		cin>>x>>y>>w;
    		f[x+1][y+1] += w;
    		XMAX = max(XMAX,x+1);
    		YMAX = max(YMAX,y+1);
    
    	}
    	for(int i=1;i<=XMAX;i++)
    	{
    		for(int j=1;j<=YMAX;j++)
    		{
    			f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
    		}
    	}
    	
    	for(int i=r;i<=XMAX;i++)
    	{
    		for(int j=r;j<=YMAX;j++)
    		{
    			maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
    		}
    	}
    	cout<<maxx<<endl;
    	return 0;
    }
    

    信息

    ID
    11
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    379
    已通过
    192
    上传者