CCF_201604-4_游戏
2024-09-02 01:22:42
bfs,首先记录危险方格的时间,因为100时间之后,所有方格均不危险,所以最短时间的最大值为300,记录每个坐标每个时间的状态,直接bfs即可。
#include<cstdio>
#include<iostream>
#include<queue>
using namespace std; struct point{
int x,y,time;
}start; int vis[][][] = {},a[][][] = {},dir[][] = {{-,},{,},{,-},{,}}; int main()
{
int n,m,t;
scanf("%d%d%d",&n,&m,&t);
while(t--)
{
int x,y,start,stop;
scanf("%d%d%d%d",&x,&y,&start,&stop);
a[x][y][] = start;
a[x][y][] = stop;
}
start.x = ;
start.y = ;
start.time = ;
queue<point> q;
q.push(start);
while(!q.empty())
{
int x = q.front().x,y = q.front().y,time = q.front().time;
if(x == n && y == m)
{
printf("%d\n",time);
return ;
}
q.pop();
for(int i = ;i < ;i++)
{
int xx = x+dir[i][],yy = y+dir[i][],timee = time+;
if(xx < || xx > n || yy < || yy > m || timee>=a[xx][yy][]&&timee<=a[xx][yy][] || vis[xx][yy][timee]) continue;
point temp;
temp.x = xx;
temp.y = yy;
temp.time = timee;
q.push(temp);
vis[xx][yy][timee] = ;
}
}
}
最新文章
- JS中的数学计算<;之简单实例讲解>;
- python学习 2数学公式
- java中包命名常见规则
- CSS只是要点-收集
- JQuery 遍历子元素+ each函数的跳出+提取字符串中的数字
- 译:C#面向对象的基本概念 (Basic C# OOP Concept) 第二部分(封装,抽象,继承)
- SDAccel-FPGA将带来至多25倍单位功耗性能提升
- devexpress13学习系列(四)PDFViewer(4)
- 四则运算出题器(C++)-BUG修复
- cp命令的实现
- 中缀表达式得到后缀表达式(c++、python实现)
- Navicat Premium 修改MySQL密码(忘记密码的情况下)
- jsonp 的实质
- django rest_framework入门
- python3:jsonpath-rw处理Json对象
- java笔记--线程的插队行为
- What is required for a successful backup of all files during hoi backup?
- 笔记-docker-1
- Mac端博客发布工具推荐
- POJ3111 K Best —— 01分数规划 二分法