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

cf B George and Cards

时间:2015-01-25 15:06:44      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

题意:给你一个只有‘.’和‘#‘的n*n的格子,问所有的‘#‘是不是只属于一个十字叉,如果不是输出NO,否则输出YES。

技术分享
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int n;
 7 char g[200][200];
 8 bool vis[200][200];
 9 
10 int main()
11 {
12     scanf("%d",&n);
13     for(int i=1; i<=n; i++)
14     {
15         scanf("%s",g[i]);
16     }
17     for(int i=1; i<=n; i++)
18     {
19         for(int j=0; j<n; j++)
20         {
21             if(g[i][j]==#)
22             {
23                 bool flag=false;
24                 if(g[i+1][j-1]==#&&g[i+1][j]==#&&g[i+1][j+1]==#&&g[i+2][j]==#&&i+2<=n&&j-1>=0)
25                 {
26                     flag=true;
27                     g[i+1][j-1]=.;
28                     g[i+1][j]=.;
29                     g[i+1][j+1]=.;
30                     g[i+2][j]=.;
31                     g[i][j]=.;
32                 }
33                 else if(g[i+1][j+1]==#&&g[i][j+1]==#&&g[i][j+2]==#&&g[i-1][j+1]==#&&j+2<n&&i+1<=n&&i-1>=1)
34                 {
35                     flag=true;
36                     g[i+1][j+1]=.;
37                     g[i][j+1]=.;
38                     g[i][j+2]=.;
39                     g[i-1][j+1]=.;
40                     g[i][j]=.;
41                 }
42                 else if(g[i-1][j]==#&&g[i+1][j]==#&&g[i][j-1]==#&&g[i][j+1]==#&&j-1>=0&&i+1<=n&&i-1>=1&&j+1<n)
43                 {
44                     flag=true;
45                     g[i-1][j]=.;
46                     g[i+1][j]=.;
47                     g[i][j-1]=.;
48                     g[i][j+1]=.;
49                     g[i][j]=.;
50                 }
51                 else if(g[i-1][j]==#&&g[i-2][j]==#&&g[i-1][j-1]==#&&g[i-1][j+1]==#&&j-1>=0&&i+1<=n&&i-2>=1&&j+1<n)
52                 {
53                     flag=true;
54                     g[i-1][j]=.;
55                     g[i-2][j]=.;
56                     g[i-1][j-1]=.;
57                     g[i-1][j+1]=.;
58                     g[i][j]=.;
59                 }
60                 else if(g[i][j-1]==#&&g[i][j-2]==#&&g[i-1][j-1]==#&&g[i+1][j-1]==#&&j-2>=0&&i+1<=n&&i-1>=1&&j+1<n)
61                 {
62                     flag=true;
63                     g[i][j-1]=.;
64                     g[i][j-2]=.;
65                     g[i-1][j-1]=.;
66                     g[i+1][j-1]=.;
67                     g[i][j]=.;
68                 }
69                 if(!flag)
70                 {
71                     printf("NO\n");
72                     return 0;
73                 }
74             }
75         }
76     }
77     printf("YES\n");
78     return 0;
79 }
View Code

 

cf B George and Cards

标签:

原文地址:http://www.cnblogs.com/fanminghui/p/4248153.html

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