题目链接:https://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1275

题目大意

长为n宽为m的草坪,“.”表示杂草,”S“表示石头,现在从(1,1)位置开始除草,每次可以上下左右移动,但是石头作为障碍物阻挡你前进,你应该选择绕路。问你最后能不能清理掉所有的杂草。

思路

从(1,1)位置开始跑dfs,看最大深度是不是n*m-cnt,cnt是石头个数。还要特判(1,1)位置是不是石头。

ac代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ok(x, y) x >= 1 && x <= n && y >= 1 && y <= m
int dx[] = {0, 0, -1, 1};
int dy[] = {-1, 1, 0, 0};
int vis[10][10];
char a[10][10];
int n, m, cnt, flag;
void dfs(int x, int y, int dep){if(dep == cnt){flag = 1;return;}for(int i = 0; i < 4; i ++){int tx = x + dx[i];int ty = y + dy[i];if(ok(tx, ty) && !vis[tx][ty] && a[tx][ty] != 'S'){vis[tx][ty] = 1;dfs(tx, ty, dep + 1);if(flag) return;vis[tx][ty] = 0;}}
}
int main(){while(~scanf("%d%d", &n, &m)){if(n + m == 0) break;cnt = n * m;memset(vis, 0, sizeof(vis));for(int i = 1; i <= n; i ++) {scanf("%s", a[i] + 1);for(int j = 1; j <= m; j ++){if(a[i][j] == 'S') cnt --;}}if(a[1][1] == 'S'){puts("NO");continue;}flag = 0;vis[1][1] = 1;dfs(1, 1, 1);if(flag) puts("YES");else puts("NO");}return 0;
}

zcmu1275: Seeding相关推荐

  1. php vendor bin phinx,数据库Seeding

    # 数据库 Seeding Phinx 0.5.0 支持数据库中使用seeding插入测试数据.Seed 类可以很方便的在数据库创建以后填充数据.这些文件默认放置在 seeds 目录,路径可以在配置文 ...

  2. EntityFramworkCore 配置种子数据(seeding data)

    目录 1.准备工作 1.1员工类 1.2 安装EFcore包以及mysql包 1.3 配置mysql数据库 2.配置种子数据 2.1.简单办法 2.2 保持干净 2.3 高级一点的做法 2.4 为了部 ...

  3. DeprecationWarning: Seeding based on hashing is deprecated since Python 3.9

    我的环境是python3.9. 今天在演示蒙特卡洛算法时遇到报错DeprecationWarning: Seeding based on hashing is deprecated since Pyt ...

  4. ZOJ 2100 Seeding ( DFS 经典回溯

    Seeding 题目描述 It is spring time and farmers have to plant seeds in the field. Tom has a nice field, w ...

  5. laravel seeding

    提前配置测试数据 php artisan make:seeder UserTableSeeder write random data <?phpuse Illuminate\Database\S ...

  6. Seeding Service Secrets

    所有EdgeX服务现在都能够指定一个JSON文件,该文件包含服务的机密,这些机密在服务启动期间被植入服务中.这允许服务在需要他们是能够使用他. 注意: 要使用他们,服务必须事先已配置.这个工作默认情况 ...

  7. 2022浙江理工校赛 问题 I: Tournament Seeding

    tag:[排序] . [配对问题].[枚举--逆向思维] 题目描述:略 得到过程: 对于一个题目中的数列,我们先尝试看看能不能排序:答案是可以(证明过程略). 我们得到,如下图的有序数列. ----- ...

  8. Laravel数据库之Seeding

    1.简介 Laravel提供了一种使用种子类将测试数据作为数据库种子的简单方法. 所有种子类都存储在database / seeders目录中. 种子类可能具有您想要的任何名称,但可能应该遵循一些明智 ...

  9. SqlServer 2016新特性 —— automatic seeding (自动种子设定)究竟是什么

    在 SQL Server 2012 和 2014 中,初始化 SQL Server Always On 可用性组中的次要副本的唯一方法是手动执行备份.复制和还原.SQL Server 2016 引入了 ...

最新文章

  1. 徐匡迪、潘云鹤等纷纷撰文,关于人工智能的最新判断都在这里了
  2. 2018/Province_Java_C/2/猴子分香蕉
  3. Python+Hive环境搭建
  4. mysql免安装数据库用法_MySQL数据库之mysql免安装制作使用说明
  5. 如何在Marketing Cloud里创建extension field扩展字段
  6. 华为辞职门事件——再谈工作问题
  7. python学习: 如何循序渐进学习Python语言
  8. 正式发布!鸿蒙,来了!
  9. Request 部分功能
  10. 如何教女朋友学 Python?
  11. ClickHouse在字节跳动推荐和广告业务部门的最佳实践
  12. 使用cos组建上传文件
  13. 数据结构考研自用——动态顺序表的实现【王道/严蔚敏C语言版】
  14. tokenize java,Java split string - Java tokenize string examples - 入门小站-rumenz.com
  15. 钢铁侠或漫威中有哪些黑科技?
  16. 幂等 (idempotence) 的概念
  17. Windows配置端口转发绕过samba 445端口限制共享linux磁盘
  18. Buddy 内存管理机制(下)
  19. 一般计算机电源都在什么服务,工控服务器电源与普通电脑电源的区别
  20. 64B/66B编码技术

热门文章

  1. 用户输入邮箱,验证邮箱格式是否正确(验证用户输入的邮箱地址中是否含有字符'@')
  2. python数据分析五个最常用库
  3. 要不要考公务员 | 进国企?
  4. 原创丨嵌入式IMX6ULL学习指引-四大要点-简单也实用
  5. 【工具篇】Joystick Pack摇杆使用Unity多场景使用摇杆
  6. VC组合框的使用示例
  7. 报错解决:SyntaxError: Non-UTF-8 code starting with ‘\xe7‘
  8. python求最小公倍数
  9. RuntimeError: Sizes of tensors must match except in dimension 2. Got 5 and 4
  10. Opencv 笔记8 霍夫变换