【题解-信息学奥赛一本通】1359:围成面积

📅 2026/7/23 18:32:47
【题解-信息学奥赛一本通】1359:围成面积
题目1359围成面积题目描述编程计算由“”号围成的下列图形的面积。面积计算方法是统计号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示在10×10的二维数组中有“*”围住了15个点因此面积为15。输入10×10的图形。输出输出面积。时空限制1s / 64MB样例输入0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0样例输出15代码#includebits/stdc.husingnamespacestd;typedefpairint,intPII;constintN1010;intn10,g[N][N],ans,k,sx,sy;intdx[10]{-1,1,0,0},dy[10]{0,0,-1,1};intbfs(intx,inty){queuePIIq;q.push({x,y});g[x][y]1;intsum1;while(!q.empty()){PII tq.front();q.pop();for(inti0;i4;i){intxxt.firstdx[i],yyt.seconddy[i];if(xx1xxnyy1yyn!g[xx][yy]){q.push({xx,yy});g[xx][yy]1;sum;}}}returnsum;}intmain(){for(inti1;in;i)for(intj1;jn;j){cing[i][j];if(g[i][j])ans;}for(inti1;in;i)for(intj1;jn;j)if((i1||in||j1||jn)!g[i][j])ansbfs(i,j);cout100-ans;return0;}结果