Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:poj3009为什么撞到石头后,把1变成0,然后递归dfs,后又要把0还原成1?

Posted by TheIllsionist at 2017-11-04 13:10:57
In Reply To:poj3009为什么撞到石头后,把1变成0,然后递归dfs,后又要把0还原成1? Posted by:184762651 at 2015-01-10 15:55:16
> poj3009为什么撞到石头后,把1变成0,然后递归dfs,后又要把0还原成1?
> 主要dfs代码如下
> for (int i = 0; i < 4; i++){  
> 
>         xt = x;  
>         yt = y;  
> 
>         while ( (0<=xt&&xt<h) && (0<=yt&&yt<w) // 向某个方向一直飞啊飞~  
>               && (map[xt][yt] == 0 or map[xt][yt] == 2)){//vacant square or start  
>             xt += dh[i];  
>             yt += dw[i];  
>         }  
> 
>         if (0<=xt&&xt<h && 0<=yt&&yt<w && map[xt][yt] == 3){ // 飞过(到)目标了           
>             if (times+1 < ans){  
>                 ans = times+1;  
>             }  
>         }  
>         else if (!(xt-dh[i]==x && yt-dw[i]==y) // 必须有空地才能飞啊,待在原地不算啊  
>                  && 0<=xt&&xt<h && 0<=yt&&yt<w && map[xt][yt] == 1){ // blocks            
>             map[xt][yt] = 0;            
>             dfs(xt-dh[i], yt-dw[i], times+1);            
>             map[xt][yt] = 1;  //此处
>         }  
>     }  

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator