这里是原题链接 油漆面积
这题其实非常简单的,但是我发现怎么做都会报错,结果查了下才知道有两个坑 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; }我真的吐了,浪费我一堆时间还以为有啥坑呢(