6 条题解

  • 0
    @ 2025-3-5 17:32:03

    二位前缀

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N=1e5+5,INF=0x3f3f3f3f;
    typedef long long LL;
    int n,x,y,v,r,ans=0;
    int f[9241][5780];
    int main()
    {
    	cin>>n>>r;
    	int a=r,b=r;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>x>>y>>v;
    		x++,y++;
    		f[x][y]+=v;
    		a=max(a,x);b=max(b,y);
    	}
    	for(int i=1;i<=a;i++)for(int j=1;j<=b;j++)f[i][j]+=f[i-1][j]+f[i][j-1]-f[i-1][j-1];
    	for(int i=r;i<=a;i++)for(int j=r;j<=b;j++)ans=max(ans,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
    	cout<<ans;
    	return 0;
    }
    

    信息

    ID
    11
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    427
    已通过
    199
    上传者