大体题意:
求从左上角到右下角的最短时间,每一个位置有一段危险时间,在危险时间内,你不能到达这个位置!
思路:
直接bfs即可!
因为样例分析出来,这个是可以走回头路的!
所以普通的vis数组 只记录坐标肯定是行不通的,但如果不用vis数组,能过的样例太少了! 剩下的都超时!
可以用一个三维的vis数组!
在记录位置的同时,同时也记录到达这个位置的时间,这样会优化了不少!
详细见代码:
#include
#include
#include
#include
using namespace std;
struct Node{
int x,y;
int t;
Node(int x = 0,int y = 0, int t = 0):x(x),y(y),t(t){}
};
struct PPP{
int l,r;
}p[107][107];
queueq;
int vis[107][107][1000];
const int dx[] = {1,-1,0,0};
const int dy[] = {0,0,1,-1};
int n,m,t;
bool init(int x,int y,int tt){
return x >= 1 && x = 1 && y p[x][y].r);
}
int bfs(){
q.push(Node(1,1,1));
while(!q.empty()){
Node u = q.front();
q.pop();
if (u.x == n && u.y == m)return u.t-1;
for (int i = 0; i
问题描述
试题编号: |
201604-4 |
试题名称: |
游戏 |
时间限制: |
1.0s |
内存限制: |
256.0MB |
问题描述: |
问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。 输入格式 输入的第一行包含三个整数n, m, t,用一个空格分隔,表示方格图的行数n、列数m,以及方格图中有危险的方格数量。 输出格式 输出一个整数,表示小明最快经过几个时间单位可以过关。输入数据保证小明一定可以过关。 样例输入 3 3 3 样例输出 6 样例说明 第2行第1列时刻1是危险的,因此第一步必须走到第1行第2列。 评测用例规模与约定 前30%的评测用例满足:0 所有评测用例满足:0 |
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 在 ASP.NET Core Web API 中处理 Patch 请求
一、概述 PUT 和 PATCH 方法用于更新现有资源。 它们之间的区别是,PUT 会替换整个资源,而 PATCH 仅指定更改。 在 ASP.NET Core Web API 中,由于 C# 是一种静态语言(dynamic 在此不表),当我们定义了一个类型用于…