首页 > 其他 > 详细

HDU 1241 Oil Deposits

时间:2020-09-24 16:23:14      阅读:43      评论:0      收藏:0      [点我收藏+]

题意: @代表油田 可以从8个方向连接 问一个图里有多少个油田

#include<bits/stdc++.h>
using namespace std;

int dx[8]={0,0,1,1,-1,-1,1,-1};
int dy[8]={1,-1,0,-1,0,1,1,-1};
char mp[105][105];
int vis[105][105];
int n,m,ans,cnt,sum;

void dfs(int x,int y)
{
	//if(sum==cnt) return ans;
	for(int i=0;i<8;i++)
	{
		int nextx=x+dx[i];
		int nexty=y+dy[i];
		if(nextx>=1 && nextx<=n && nexty>=1 &&nexty<=m)
		{
			//if(mp[x][y]==‘*‘ && mp[nextx][nexty]==‘@‘ && !vis[nextx][nexty]) ans++;
			if(mp[nextx][nexty]==‘@‘ && !vis[nextx][nexty])
			{
				vis[nextx][nexty]=1;	
				sum++;
				dfs(nextx,nexty);
			}
			//cout<<ans<<endl; 
			
		}
		
	}
 } 
int main()
{
	while(cin>>n>>m)
	{
		if(m==0) break;
		cnt=0,sum=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>mp[i][j];
				//if(mp[i][i]==‘@‘) cnt++;
			}
		}
		ans=0;
		memset(vis,0,sizeof(vis));
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(mp[i][j]==‘@‘ && !vis[i][j])
				{
					dfs(i,j);
					ans++;
				}
			}
		}
		cout<<ans<<endl;
		
	}
	return 0;
}

HDU 1241 Oil Deposits

原文:https://www.cnblogs.com/tianming1/p/13724408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!