ZJUT1012勘探油田

    技术2025-08-31  15

    Problem Address:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1012

     

    目前只会使用简单的DFS。

     

    由于打错了一个字母,结果WA了几次。

     

    贴下代码。

     

    #include <iostream>using namespace std;char ch[101][101];int m,n;int ct;void set(int i, int j){ if (ch[i][j]=='*') return; ch[i][j] = '*'; if (i!=0) {  set(i-1,j);  if (j!=0) set(i-1,j-1);  if (j+1!=n) set(i-1,j+1); } if (j!=0) set(i,j-1); if (j+1!=n) set(i,j+1); if (i+1!=m) {  set(i+1,j);  if (j!=0) set(i+1,j-1);  if (j+1!=n) set(i+1,j+1); }}int main(){ int i,j; while(scanf("%d %d", &m, &n)) {  if (m==0) break;  cin.get();  ct = 0;  for (i=0; i<m; i++)  {   scanf("%s", ch[i]);  }  for (i=0; i<m; i++)  {   for (j=0; j<n; j++)   {    if (ch[i][j]=='@')    {     ct++;     set(i,j);    }   }  }    printf("%d/n", ct); } return 0;}

     

    最新回复(0)