参考源码HDOJ_-(HDUACM201403版_10)搜索入门

时间:2024-05-13 11:07:34
【文件属性】:

文件名称:参考源码HDOJ_-(HDUACM201403版_10)搜索入门

文件大小:335KB

文件格式:PPT

更新时间:2024-05-13 11:07:34

杭电ACM课件 ACM

参考源码(HDOJ_1010) 附录:hdoj_1010月下版 # include # include # include char map[9][9]; int n,m,t,di,dj; bool escape; int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; void dfs(int si,int sj,int cnt) { int i,temp; if(si>n||sj>m||si<=0||sj<=0) return; if(cnt==t&&si==di&&sj==dj) escape=1; if(escape) return; temp=(t-cnt)-abs(si-di)-abs(sj-dj); if(temp<0||temp&1) return; for(i=0;i<4;i++){ if(map[si+dir[i][0]][sj+dir[i][1]]!='X') { map[si+dir[i][0]][sj+dir[i][1]]='X'; dfs(si+dir[i][0],sj+dir[i][1],cnt+1); map[si+dir[i][0]][sj+dir[i][1]]='.'; } } return; } int main() { int i,j,si,sj; while(cin>>n>>m>>t) { if(n==0&&m==0&&t==0) break; int wall=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cin>>map[i][j]; if(map[i][j]=='S') { si=i; sj=j; } else if(map[i][j]=='D') { di=i; dj=j; } else if(map[i][j]=='X') wall++; } if(n*m-wall<=t) { cout<<"NO"<


网友评论