CCF-CSP题解 201604-4 游戏
bfs
#include <bits/stdc++.h>
const int maxn = 100;
using namespace std;
int n, m, t;
bool hasDanger[maxn + 10][maxn + 10];
int danger[maxn + 10][maxn + 10][2];
struct tNode
{
int r, c;
int time;
tNode(int rr, int cc, int ttime):r(rr), c(cc), time(ttime){}
};
int vis[maxn + 10][maxn + 10][310];
int main()
{
scanf("%d%d%d", &n, &m, &t);
memset(hasDanger, 0, sizeof(hasDanger));
for (int i = 1, r, c, a, b; i <= t; i++)
{
scanf("%d%d%d%d", &r, &c, &a, &b);
hasDanger[r][c] = true;
danger[r][c][0] = a;
danger[r][c][1] = b;
}
memset(vis, 0, sizeof(vis));
queue<tNode> q;
q.push(tNode(1, 1, 0));
vis[1][1][0] = 1;
while (true)
{
tNode x = q.front(); q.pop();
int r = x.r, c = x.c, time = x.time;
// printf("bfs: %d %d %d\n", r, c, time);
if (r == n && c == m)
{
printf("%d\n", time);
break;
}
if (r <= n - 1 && !vis[r + 1][c][time + 1] && (!hasDanger[r + 1][c] || !(danger[r + 1][c][0] <= time + 1 && danger[r + 1][c][1] >= time + 1)))
q.push(tNode(r + 1, c, time + 1)), vis[r + 1][c][time + 1] = 1;
if (c <= m - 1 && !vis[r][c + 1][time + 1] && (!hasDanger[r][c + 1] || !(danger[r][c + 1][0] <= time + 1 && danger[r][c + 1][1] >= time + 1)))
q.push(tNode(r, c + 1, time + 1)), vis[r][c + 1][time + 1] = 1;
if (r >= 2 && !vis[r - 1][c][time + 1] && (!hasDanger[r - 1][c] || !(danger[r - 1][c][0] <= time + 1 && danger[r - 1][c][1] >= time + 1)))
q.push(tNode(r - 1, c, time + 1)), vis[r - 1][c][time + 1] = 1;
if (c >= 2 && !vis[r][c - 1][time + 1] && (!hasDanger[r][c - 1] || !(danger[r][c - 1][0] <= time + 1 && danger[r][c - 1][1] >= time + 1)))
q.push(tNode(r, c - 1, time + 1)), vis[r][c - 1][time + 1] = 1;
}
return 0;
}
CCF-CSP题解 201604-4 游戏的更多相关文章
- CCF CSP 201512-2 消除类游戏
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201512-2 消除类游戏 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行 ...
- CCF CSP 201604-4 游戏
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-4 游戏 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制 ...
- CCF CSP 201712-2 游戏
题目链接:http://118.190.20.162/view.page?gpid=T67 问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐 ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- CCF CSP 201604-2 俄罗斯方块
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-2 俄罗斯方块 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游 ...
- CCF CSP 201703-3 Markdown
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
- CCF CSP 201709-4 通信网络
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...
- CCF CSP 201409-3 字符串匹配
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...
随机推荐
- java基础开发环境安装(全)
一.jdk安装(可以根据自己习惯选择合适安装路径) 1.jdk1.8下载地址:https://pan.baidu.com/s/1O9JQlFJ9cpkGCQL35cm_7g 提取码:pe2g 2.jd ...
- 十一、设备初始化(ADK4.0)
1.1 首先初始化连接库 sinkConnectionInit();à ConnectionInitEx2(); theCm.task.handler = connectionBluesta ...
- Java描述设计模式(22):策略模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 每年双十一,各大电商平台会推出不同的满减策略,当用户的消费金额满一定额度后,会进行减去一定的优惠额度,从而来一波清仓甩卖,使用策 ...
- 解放双手,在PC端进行Android真机调试
scrcpy简介(拼写是scrcpy,非Python爬虫框架Scrapy) 简单地来说,scrcpy就是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备.它可以通过 ...
- deepin安装pip
sudo apt install python3-venv python3-pip 升级最新版 pip3 install --upgrade pip 更新完以后就报错网上的解决办法没有好使的 退回版 ...
- VLAN配置及Trunk接口配置
实验拓扑 1.检验连通性,PC2 ping PC3,PC2 ping PC4 ,都能ping 通 2.创建vlan 3.配置access接口 在S1上配置E0/0/2为vlan10和E0/0/3为vl ...
- Redis面试题详解:哨兵+复制+事务+集群+持久化等
Redis主要有哪些功能? 1.哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. ...
- Python3 之 类属性与实例属性
1.类属性与实例属性 类属性就相当与全局变量,实例对象共有的属性,实例对象的属性为实例对象自己私有. 类属性就是类对象(Tool)所拥有的属性,它被所有类对象的实例对象(实例方法)所共有,在内存中只存 ...
- 【Luogu P2515】软件安装
Luogu P2515 这道题的题面与P2146有点像.一些不同地方就是P2146是无环的,这题是有环的. 很显然,如果有几个软件的依赖关系形成环,那么这几个软件就可以被看成是一个大软件,其价值和空间 ...
- Java并发之synchronized关键字深度解析(一)
前言 近期研读路神之绝世武学,徜徉于浩瀚无垠知识之海洋,偶有攫取吉光片羽,惶恐未领略其精髓即隐入岁月深处,遂急忙记录一二,顺备来日吹cow之谈资.本小系列为并发之亲儿子-独臂狂侠synchronize ...