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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

codevs 2806_紅與黑_bfs

2019-11-11 04:47:15
字體:
供稿:網(wǎng)友

題目描述

有一個矩形房間,覆蓋正方形瓷磚。每塊瓷磚涂成了紅色或黑色。一名男子站在黑色的瓷磚上,由此出發(fā),可以移到四個相鄰瓷磚之一,但他不能移動到紅磚上,只能移動到黑磚上。編寫一個程序,計算他通過重復(fù)上述移動所能經(jīng)過的黑磚數(shù)。


思路

暴力搜索就可以了 O(nm)


#include <stdio.h>#include <queue>#include <cstring>#include <string>using namespace std;int a[101][101],x,y;int f[101][101],ans=0;int dx[5]={0,1,0,-1,0};int dy[5]={0,0,1,0,-1};int n,m;int bfs(){ queue<int> tx; queue<int> ty; tx.push(x); ty.push(y); 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<=m&&a[dx[i]+xx][dy[i]+yy]==0&&f[dx[i]+xx][dy[i]+yy]==0) { f[dx[i]+xx][dy[i]+yy]=1; ans++; tx.push(dx[i]+xx); ty.push(dy[i]+yy); } } }int main(){ scanf("%d%d",&m,&n); while (n!=0) { for (int i=1;i<=100;i++) for (int j=1;j<=100;j++) { a[i][j]=f[i][j]=0; } for (int i=1;i<=n;i++) { char ch[100]; scanf("%s",&ch); for (int j=1;j<=m;j++) { if (ch[j-1]=='#') a[i][j]=1; if (ch[j-1]=='@') { x=i; y=j; f[i][j]=1; } } } ans=1; bfs();
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平顺县| 临澧县| 婺源县| 嵊泗县| 巩留县| 宝丰县| 华亭县| 慈溪市| 辉县市| 交城县| 凤城市| 涞水县| 恭城| 黔西县| 南城县| 徐汇区| 高碑店市| 大安市| 亚东县| 湘潭市| 高碑店市| 绥中县| 株洲县| 扎囊县| 湖州市| 万源市| 宁阳县| 云林县| 花莲市| 新化县| 靖宇县| 桃江县| 庆元县| 中江县| 福建省| 琼结县| 广州市| 绥棱县| 二连浩特市| 郯城县| 宜兴市|