文章

5

粉丝

9

获赞

2

访问

2.5k

头像
矩形个数 题解:
P1959 华东师范大学2021年机试
发布于2024年9月18日 02:15
阅读数 297

二位前缀和 重要代码

二位前缀和基础知识部分可以参考:https://www.bilibili.com/video/BV1pi4y1j7si

res=sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1];

sum[i][j]=g[i][j]+sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1];

暴力模拟每个可能的矩形,通过二位前缀和,大于等于k的就是合理的答案(这个思路说得比较简略,如果还是不太懂可以参考这个:https://www.acwing.com/solution/content/98309/)

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

int arr[510][510];
int sum[510][510];

int main(){
    int ans=0;
    int r,c,n,k;
    cin>>r>>c>>n>>k;

    memset(arr,0,sizeof(arr));

    memset(sum,0,sizeof(sum));
    for(int i=1;i<=n;i++){
        int x,y;
        cin>>x>>y;
        arr[x][y]=1;
    }
    for(int i=1;i<=r;i++){
        for(int j=1;j<=c;j++){
            sum[i][j]=arr[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
        }
    }

    for(int i=1;i<=r;i++){
        for(int j=1;j<=c;j++){
             for(int x=i;x<=r;x++){
                for(int y=j;y<=c;y++){
       ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发