【非原创】codeforces 1063B Labyrinth 【01bfs】
学习博客:戳这里
附本人代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const int maxn = 2e3 + 10;
5 const ll mod = 998244353;
6 char st[maxn][maxn];
7 int vis[maxn][maxn];
8 int dx[11]={1,-1, 0, 0};
9 int dy[11]={0, 0, 1,-1};
10 const int inf = 0x3f3f3f3f;
11 struct nod{
12 int x, y;
13 };
14 int main() {
15
16 int n, m;
17 int r, c;
18 int X, Y;
19 scanf("%d %d", &n, &m);
20 scanf("%d %d", &r, &c);
21 scanf("%d %d", &X, &Y);
22 for(int i = 1; i <= n; ++i) {
23 scanf("%s", st[i]+1);
24 }
25 memset(vis, inf, sizeof(vis));
26 deque<nod>q;
27 nod u, v;
28 u.x = r, u.y = c;
29 q.push_front(u);
30 vis[u.x][u.y] = 0;
31 while(!q.empty()) {
32 u = q.front(); q.pop_front();
33 for(int i = 0; i < 4; ++i) {
34 int xx = u.x + dx[i];
35 int yy = u.y + dy[i];
36 if(xx >= 1 && xx <= n && yy >= 1 && yy <= m && st[xx][yy] != '*') {
37 if(vis[u.x][u.y] + (i==2) < vis[xx][yy]) {
38 vis[xx][yy] = vis[u.x][u.y] + (i==2);
39 v.x = xx, v.y = yy;
40 if(i == 2) q.push_back(v);
41 else q.push_front(v);
42 }
43 }
44 }
45 }
46 int ans = 0;
47 for(int i = 1; i <= n; ++i) {
48 for(int j = 1; j <= m; ++j) {
49 if(vis[i][j] <= Y && vis[i][j] - j + c <= X) {
50 // printf("%d %d %d\n", vis[i][j], i, j);
51 ++ans;
52 }
53 }
54 }
55 printf("%d\n", ans);
56 return 0;
57 }
【非原创】codeforces 1063B Labyrinth 【01bfs】的更多相关文章
- CodeForces 1063B. Labyrinth 性质
给定$n *m$的格子 询问从$(r, c)$开始最多向左走$x$步,向右走$y$步 询问有多少个格子可以从$(r, c)$到达 有障碍物,$n, m \leqslant 2 * 10^3$ 对于一个 ...
- [Codeforces Round #516][Codeforces 1063B/1064D. Labyrinth]
题目链接:1063B - Labyrinth/1064D - Labyrinth 题目大意:给定一个\(n\times m\)的图,有若干个点不能走,上下走无限制,向左和向右走的次数分别被限制为\(x ...
- Linux下high CPU分析心得【非原创】
非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高ga ...
- CSS样式命名整理(非原创)
非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...
- 非原创。使用ajax加载控件
非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...
- Java 表达式解析(非原创)
因项目需要,在网上找来一套表达式解析方法,由于原来的方法太过于零散,不利于移植,现在整理在同一文件内: 文件中包含5个内部类,源码如下: import java.util.ArrayList; imp ...
- Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创)
Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创) 由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量.因而inter ...
- 用RD,GR,BL三个方法内代码生成一张图片(非原创,我只是完整了代码)
我公开以下图片的源代码,,是ppm格式的,,自己找到能打开的工具.. (非原创,我加工的代码,可直接执行运行输出,缩略图能看到效果) 这是原博客 http://news.cnblogs.com/n/ ...
- tp5.1 phpspreadsheet- 工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西,)
phpspreadsheet-工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西)1. composer require phpoffice/phpspreadsheet2. 看最下面的两 ...
随机推荐
- linux下删除文件夹及下面所有文件
使用rm -rf 目录名字 命令即可 -r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 rm 不带参数 只能删除文件 rm test.txt mkdir /us ...
- Hadoop2.7.7阿里云安装部署
阿里云的网络环境不需要我们配置,如果是在自己电脑上的虚拟机,虚拟机的安装步骤可以百度.这里是单机版的安装(也有集群模式的介绍)使用Xshell连接阿里云主机,用命令将自己下载好的安装包上传到服务器 # ...
- 六个你不知道的PR快捷键,拯救你的剪辑效率
5G时代到来,会剪辑视频的人,无论在校园还是未来步入职场都很吃香.对于普通人来说,视频处理也成为了一个通用技能.PR是我们大多数人剪辑中,经常会用到的剪辑工具,之前的文章中已经给大家总结了pr的一些提 ...
- DDD的实体、值对象、聚合根的基类和接口:设计与实现
1 前置阅读 在阅读本文章之前,你可以先阅读: 什么是DDD 2 实现值对象 值对象有两个主要特征:它们没有任何标识.它们是不可变的. 我们举个例子:小明是"浙江宁波"人,小红也是 ...
- 标准PE头属性说明
- C# 给Word不同页面设置不同背景
给Word文档设置背景时,通常只能针对整篇文档设置统一的背景,如果需要对某些页面单独设置背景,则需要通过另外的方式来实现.本文通过C# 程序代码演示如何来实现.并附VB.NET代码作参考. 思路:通过 ...
- Display属性学习总结
HTMl元素根据表现形式,常见的可以分为两类. (1)块元素(block) (2)行内元素(inline). 当然,除了以上两种元素类型外,还有inline-block.table-cell等元素类型 ...
- EasyUI框架
使用EasyUI框架时,需要导入3个包在项目js文件夹之中. 在项目之中,每次需先引入相关文件: <!--引入jquery--> <script src="../js/jq ...
- linux下的ARP攻击(kali)
这是我的学习总结,刚入坑网络安全,写的不好或者有什么错误的希望大佬们指正 首先了解ARP的作用以及原理: ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP ...
- Java中的transient关键字,使用小结
transient关键字的介绍: 一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java的这种序列化模式为开发者提供了很多便利,可以不必关系具体序列化的过程,只要这个类实现了S ...