Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
写了个代码,不知道算不算是DFS?//这两天一直在研究什么是DFS,BFS,看了半天,有点感觉头晕,总的感觉是利用递归回朔的方法(不知道是不是正确)反正就是一个连一个的“传染”下去,没有合适的再回头看上一个有没有其他的路径, 代码如下,请批评指教:(我知道贴代码不好,但是我觉得有个ac的代码,起码可以给后面的朋友一些参考思路阿,我就喜欢研究别人的代码,研究多了,就会有感觉的阿,虽然我还是很差的) //1979:Red and Black #include <iostream> using namespace std; int tile[20][20]={0}; int total=1; int a,b; void top(int x,int y) { if(tile[x][y]==1) { total++; tile[x][y]=2; if(y>0&&tile[x][y-1]==1) { top(x,y-1); } if(y<(a-1)&&tile[x][y+1]==1) { top(x,y+1); } if(x>0&&tile[x-1][y]==1) { top(x-1,y); } if(x<(b-1)&&tile[x+1][y]==1) { top(x+1,y); } } } int main() { char ch; int x=0,y=0; while(cin>>a>>b&&a!=0&&b!=0) { total = 0; for(int i=0;i<b;i++) { for(int j=0;j<a;j++) { cin>>ch; if(ch=='.') { tile[i][j]=1; continue; } if(ch=='#') { tile[i][j]=0; continue; } if(ch=='@') { x=i; y=j; tile[i][j]=1; } } } //position(x,y); top(x,y); cout<<total<<endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator