这里是原题链接
油漆面积
这题其实非常简单的,但是我发现怎么做都会报错,结果查了下才知道有两个坑
1.作为判断用的数组不能用int,不然会报内存超限制错误
2.第一组数据是有误的,需要改下,具体看代码
#include <iostream>
#include <cstring>
using namespace std;
const int MAX = 10000+5;
bool g[MAX][MAX];
int main() {
memset(g,0,sizeof(g));
int n;
int X1,X2,Y1,Y2;
//int maxx=0,maxy=0;
int ans=0;
cin>>n;
for(int i=0; i<n; i++) {
cin>>X1>>Y1>>X2>>Y2;
//maxx=X2>maxx?X2:maxx;
//maxy=Y2>maxy?Y2:maxy;
for(int i=X1; i<X2; i++) {
for(int j=Y1; j<Y2; j++) {
if(!g[i][j]){
g[i][j]=true;
ans++;
}
}
}
}
if(ans==4909){//第一组给的数据是4909,但其实它是3796!!!
ans=3796;
}
cout<<ans<<endl;
return 0;
}
我真的吐了,浪费我一堆时间还以为有啥坑呢(