1. 程式人生 > 其它 >mac shell終端編輯命令列快捷鍵——行首,行尾

mac shell終端編輯命令列快捷鍵——行首,行尾

題目:

https://vjudge.net/problem/HDU-1241

思路:

dfs

每碰到油庫就八方向搜

程式碼:

#include<stdio.h>
#include<string.h>
int vis[103][103];
char si[103][103];
struct node
{
    int x,y;
};
int n,m;
int dx[9]={0,0,1,-1,1,-1,1,-1};
int dy[9]={1,-1,0,0,-1,1,1,-1};
void dfs(node s)
{
    vis[s.x][s.y]=1;
    int x=s.x;
    
int y=s.y; for(int i=0;i<8;i++) { int tx=x+dx[i]; int ty=y+dy[i]; if(!vis[tx][ty]&&si[tx][ty]=='@'&&tx>=1&&tx<=n&&ty>=1&&ty<=m) { node nw; nw.x=tx; nw.y=ty; dfs(nw); } } }
int main() { while(1) { scanf("%d %d",&n,&m); if(n==0&&m==0) break; memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf(" %1c",&si[i][j]); } }
int ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(!vis[i][j]&&si[i][j]=='@') { node s; s.x=i; s.y=j; dfs(s); ans++; } } } printf("%d\n",ans); } }