hdu 1241 (dfs基础)

#include<iostream>
#include<string.h>
#include <stdio.h>
using namespace std;
//1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1
int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1},sum=0;
int m,n;const int z=105;
char s[z][z]={};
void dfs(int x,int y)
{
  
int nx,ny;   for(int i=0;i<8;i++)//8个方向   {     nx=x+st[i][0];     ny=y+st[i][1];     if(s[nx][ny]=='@'&&nx>=0&&ny>=0&&nx<m&&ny<n) //5个判断条件
    {     s[nx][ny]='*';dfs(nx,ny);     }   } } int main() {   while(cin>>m>>n)   {  if(m==0&&n==0) break;sum=0;     for(int i=0;i<m;i++)     for(int j=0;j<n;j++) cin>>s[i][j];//输入图     for(int i=0;i<m;i++)     for(int j=0;j<n;j++)     {     if(s[i][j]=='@') {sum++;dfs(i,j);}     }     cout<<sum<<endl;    } } /* 其中int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}可以 {1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1}不可以 {1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}可以

//写这个题错了好几个个小地方 把==写成= 把nx,ny写成x,y 自定义数组少加了逗号..

 关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

原文地址:https://www.cnblogs.com/siuh/p/9005214.html