设为首页 加入收藏

TOP

一个n*n的图是否能由十字架拼成
2014-02-14 12:51:54 来源: 作者: 【 】 浏览:146
Tags:一个 是否 能由 十字架

  题意:给出一个n*n的图,问这个图是否能由十字架拼成(3 ≤ n ≤ 100)。

  ——>>最上面一行的#,一定是一个十字架的头部,判断该头部是否符合要求即可。

  #include

  using namespace std;

  const int maxn = 100 + 10;

  char G[maxn][maxn];

  int main()

  {

  int n;

  while(scanf(%d, &n) == 1) {

  int sum = 0;

  for(int i = 0; i < n; i++) {

  getchar();

  for(int j = 0; j < n; j++) {

  G[i][j] = getchar();

  if(G[i][j] == '#') sum++;

  }

  }

  bool ok = true;

  if(sum % 5) ok = false;

  if(ok) {

  for(int i = 0; i < n; i++) {

  if(!ok) break;

  for(int j = 0; j < n; j++)

  if(G[i][j] == '#') {

  if(!j || j == n-1 || i > n-3 || G[i+1][j] != '#' || G[i+1][j-1] != '#' || G[i+1][j+1] != '#' || G[i+2][j] != '#') {

  ok = false;

  break;

  }

  G[i+1][j] = G[i+1][j-1] = G[i+1][j+1] = G[i+2][j] = '.';

  }

  }

  }

  ok puts(YES) : puts(NO);

  }

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c++ 复数控制向量旋转 下一篇C++ 多重继承详细教程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)
·透彻理解 C 语言指针 (2025-12-26 00:22:52)
·C语言指针详解 (经典 (2025-12-26 00:22:49)
·C 指针 | 菜鸟教程 (2025-12-26 00:22:46)