码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1010 Tempter of the Bone_DFS

时间:2015-03-04 15:56:08      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 char maze[8][8];
 7 int n, m, t;
 8 int mx, my, X, Y;
 9 int flag, tt;
10 int Move[4][2]= {{-1,0},{1,0},{0,1},{0,-1}};
11 void DFS(int x,int y,int k);
12 int main()
13 {
14     int i, j;
15     while(scanf("%d %d %d",&n,&m,&t)!=EOF, m||n||t)
16     {
17         tt = 0;
18         flag = 0;
19         getchar();
20         for(i = 0; i < n; i++)
21         {
22             for(j = 0; j < m; j++)
23             {
24                 scanf("%c",&maze[i][j]);
25                 if(maze[i][j]==S)
26                 {
27                     mx = i;
28                     my = j;
29                     maze[mx][my]=X;
30                 }
31                 else if(maze[i][j]==D)
32                 {
33                     X = i;
34                     Y = j;
35                     tt++;
36                 }
37                 else if(maze[i][j]==.)
38                     tt++;
39             }
40             getchar();
41         }
42         if(tt>=t && abs(X-mx)+abs(Y-my)<=t)// &&  !(abs(X-mx)+abs(Y-my)-t)&1 不可以加
43             DFS(mx,my,0);
44         if(flag)
45             printf("YES\n");
46         else
47             printf("NO\n");
48     }
49     return 0;
50 }
51 void DFS(int x,int y,int k)
52 {
53     int i;
54     if(t==k && X==x && Y==y)
55         flag = 1;
56     if(flag)
57         return;
58     int v = t-k-abs(X-x)-abs(Y-y);
59     if(v<0||v&1)
60         return;
61     for(i=0; i<4; i++)
62     {
63         int xx=Move[i][0]+x;
64         int yy=Move[i][1]+y;
65         if(xx>=0 && xx<n && yy>=0 && yy<m && maze[xx][yy]!=X)
66         {
67             maze[xx][yy] = X;
68             DFS(xx,yy,k+1);
69             maze[xx][yy] = .;
70         }
71     }
72 }
View Code

1.奇偶剪枝

2.偶数判断 &1

HDU 1010 Tempter of the Bone_DFS

标签:

原文地址:http://www.cnblogs.com/tyx0604/p/4313207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!