#include <iostream>
using namespace std;
const int MAXN=500+10;
bool Matrix[MAXN][MAXN]={false};
int main() {
int n,r,c,k,cnt=0; //矩阵的行数、列数、矩阵1的个数、含有k个1
cin>>n>>r>>c>>k;
for(int i=0;i<n;++i){
int x,y;
cin>>x>>y;
Matrix[x][y]=true;
}
for(int a1=1;a1<=r;++a1){ //a1左上角的点的y值
for(int a2=1;a2<=n;++a2){ //a2左上角点的x值
for(int b1=a1;b1<=r;++b1){ //b1右下角的点的y值
for(int b2=a2;b2<=n;++b2){ //b2右下角点的x值
int num=0; //这个矩形种1的个数
for(int c1=a1;c1<=b1;++c1){
for(int c2=a2;c2<=b2;++c2){
if(Matrix[c2][c1]==true) ++num;
}
}
if(num>=k) ++cnt;
}
}
}
}
printf("%d",cnt);
system("pause");
return 0;
}
矩形个数(暴力)
于 2022-03-02 10:36:27 首次发布