千家信息网

ACwing中的二维前缀和怎么用

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章将为大家详细讲解有关ACwing中的二维前缀和怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。#include #include #inc
千家信息网最后更新 2024年11月17日ACwing中的二维前缀和怎么用

这篇文章将为大家详细讲解有关ACwing中的二维前缀和怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

#include #include #include #include using namespace std;const int N=5010;int n,m;int s[N][N];int main(){    int cnt,R;    cin>>cnt>>R;    //优化    R=min(5001,R);    //防止右下角空    n=m=R;        while(cnt--){        int x,y,w;        cin>>x>>y>>w;        x++,y++;        n=max(n,x);        m=max(m,y);        s[x][y]+=w;    }        //预处理前缀和    for(int i=1;i<=n;i++){        for(int j=1;j<=m;j++){            s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];        }    }    int wmax=0;    //枚举所有变长为R的矩形,枚举矩形右下角坐标(i,j)    for(int i=R;i<=n;i++){        for(int j=R;j<=m;j++){            wmax=max(wmax,s[i][j]-s[i-R][j]-s[i][j-R]+s[i-R][j-R]);        }    }    cout<

关于ACwing中的二维前缀和怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0