POJ3037 Skiing
Skiing
题目大意:
给定一个M*N的网格,已知在每个网格中的点可以向上下左右四个方向移动一个单位,每个点都有一个高度值。 从每个点开始移动时存在一个速度值,从A点移动到B点,则此时B点的速度为"A的速度*2^(A的高度值-B的高度值)",而A点移动到B点所用的时间则是A点开始移动的速度值的倒数。 提供网格的长和宽,每个点的高度,以及在左上角的点的出发速度,问从左上角的点到右下角的点最少需要多少时间。
大致思路:
这道题,我们可以注意到其实在某一个点的速度是个固定值,因为不管怎么到达该点,这个点的速度都是1/(v*(2^(起点与该点的深度差))),求出每个点的速度后,再求最短路径就好了。
代码:
#include<queue>
#include<cmath>
#include<cstdio>
#define Max_double 11258999068426240000;
#define N 110
using namespace std;
int d[][]={{,-},{,},{,},{-,}};
struct hehe{
int x;
int y;
};
hehe p,qqq;
queue<hehe>q;
double dis[N][N];
bool exist[N][N];
int deep[N][N],v,n,m;
double spfa(){
p.x=;
p.y=;
dis[][]=;
exist[][]=;
q.push(p);
while(!q.empty()){
p=q.front();
q.pop();
exist[p.x][p.y]=;
double k=1.0/(v*pow(,1.0*deep[][]-deep[p.x][p.y]));
for(int i=;i<;i++){
int x1=p.x+d[i][],y1=p.y+d[i][];
if(x1>=&&x1<=n&&y1>=&&y1<=m){
if(dis[x1][y1]>dis[p.x][p.y]+k){
dis[x1][y1]=dis[p.x][p.y]+k;
if(!exist[x1][y1]){
qqq.x=x1;
qqq.y=y1;
q.push(qqq);
exist[qqq.x][qqq.y]=;
}
}
}
}
}
return dis[n][m];
}
int main(){
scanf("%d%d%d",&v,&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
scanf("%d",&deep[i][j]);
dis[i][j]=Max_double;
}
printf("%.2lf",spfa());
return ;
}
POJ3037 Skiing的更多相关文章
- poj练习题的方法
poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1 ...
- 【POJ3037】Skiing 最短路
题意: 有个n*m的滑雪场,bessie要从(1,1)滑到(n,m),问最小时间. 起始有一个速度v,然后每从一个点A到一个点B(仅仅能上下左右走,每次一格),速度就会乘上2^(权值A-权值B). 然 ...
- POJ 3037 Skiing(如何使用SPFA求解二维最短路问题)
题目链接: https://cn.vjudge.net/problem/POJ-3037 Bessie and the rest of Farmer John's cows are taking a ...
- nyoj 10 skiing(记忆化搜索)
skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...
- skiing(搜索+记忆化搜索)
skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...
- NYOJ10,skiing
skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区域必须向下倾斜,并且 ...
- ACM Skiing问题
ACM Skiing问题 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michae ...
- 2017 ACM-ICPC(乌鲁木齐赛区)网络赛 H.Skiing 拓扑排序+最长路
H.Skiing In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort h ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing (拓扑排序+假dp)
题目链接:https://nanti.jisuanke.com/t/16957 题目: In this winter holiday, Bob has a plan for skiing at the ...
随机推荐
- canvas绘图出现模糊,解决方法
在项目开发中发现,canvas有一个问题,绘制的图会出现模糊现象. 解决方法之一:将canvas元素放大2倍,然后将整个canvas元素或者其父元素缩小两倍. <!DOCTYPE html> ...
- 简单了解Linux中 du 和 df 以及它们的区别
一 .du : 显示每个文件和目录的磁盘使用空间~~~文件的大小. 命令参数: -a #显示目录中文件的大小 单位 KB . -b #显示目录中文件的大小,以字节byte为单位. -c #显 ...
- webpack采坑十连跳
4.css.js一同打包进html ---------------- https://www.cnblogs.com/amiezhang/p/9723565.html 依赖内联插件 HtmlWebp ...
- Java_静态变量
class c1c { private static int num = 0; private static double pi = 3.14; private double radius; priv ...
- 【学习笔记】深入理解js原型和闭包(5)——instanceof
又介绍一个老朋友——instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...
- fetch和axios区别,proxy代理配置
1.今天使用fetch调用接口时使用console.log(res.data)始终是undefined,使用anxios请求则可以成功请求到数据,非常奇怪,于是查了一圈,才搞明白是我自以为了,哎,浪费 ...
- elasticsearch 2.4在head删除数据(使用Delete By Query插件)
之所以说明是2.4版,是因为不同版本删除的语法不一样(例如跟5.x就不同) 首先安装Delete By Query插件,方式跟安装head插件差不多,安装命令:plugin install delet ...
- zc.buildout构建项目时报错‘AttributeError: '_NamespacePath' object has no attribute 'sort'’
在使用zc.buildout构建项目时如果碰到‘AttributeError: '_NamespacePath' object has no attribute 'sort'’报错: An inter ...
- ldap_modify: No such object (32) matched DN: cn=config
centos 6.9 部署 kerbors ldap 报错 [root@hadoop data]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ld ...
- Apache安装和文件配置
Apache和Tomcat的区别是:静态文件和动态页面,C++和Java的区别. 对比.