国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

SSL 2352_面積_bfs

2019-11-08 01:42:18
字體:
來源:轉載
供稿:網友

題目描述

編程計算由‘ * ’號圍成的下列圖形的面積。面積的計算方法是統計 *號所圍成的閉合曲線中水平線和垂直線交點的數目。

如圖所示,在10*10的二維數組中,有*圍住了15個點,因此面積為15。


思路

從四個角進行bfs,開始時ans值為100,讀入是遇到1ans–,bfs時沒覆蓋一個點ans– O(100)


#include <stdio.h>#include <queue>#include <iostream>using namespace std;int n=10,ans=100,a[11][11];int dx[5]={0,1,0,-1,0};int dy[5]={0,0,1,0,-1};int bfs(int x,int y){ queue<int> tx; queue<int> ty; tx.push(x); ty.push(y); ans--; a[x][y]=1; while (!tx.empty()) { int xx=tx.front(),yy=ty.front(); tx.pop(),ty.pop(); for (int i=1;i<=4;i++) if (dx[i]+xx>=1&&dx[i]+xx<=n&&dy[i]+yy>=1&&dy[i]+yy<=n&&a[dx[i]+xx][dy[i]+yy]==0) { a[dx[i]+xx][dy[i]+yy]=1; ans--; tx.push(dx[i]+xx); ty.push(dy[i]+yy); } }}int main(){ for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) { cin>>a[i][j]; if (a[i][j]==1) ans--; } if (a[1][1]==0) bfs(1,1); if (a[1][n]==0) bfs(1,n); if (a[n][1]==0) bfs(n,1); if (a[n][n]==0) bfs(n,n);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蚌埠市| 合川市| 山丹县| 深水埗区| 云霄县| 开远市| 莱西市| 手机| 晋宁县| 马鞍山市| 朝阳县| 永寿县| 乌什县| 股票| 营口市| 鄂托克前旗| 烟台市| 井研县| 常熟市| 庆阳市| 平远县| 扎赉特旗| 康乐县| 白城市| 肃南| 宝山区| 封丘县| 仁化县| 基隆市| 罗平县| 老河口市| 华容县| 绿春县| 宁波市| 泸水县| 蕲春县| 武隆县| 永胜县| 高邑县| 浑源县| 西平县|