Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 438    Accepted Submission(s): 108


Problem Description
Due to the curse made by the devil,Xiao Ming is stranded on a mountain and can hardly escape.

This mountain is pretty strange that its underside is a rectangle which size is n∗m and
every little part has a special coordinate(x,y)and
a height H.

In order to escape from this mountain,Ming needs to find out the devil and beat it to clean up the curse.

At the biginning Xiao Ming has a fighting will k,if
it turned to 0 Xiao
Ming won't be able to fight with the devil,that means failure.

Ming can go to next position(N,E,S,W)from
his current position that time every step,(abs(H1−H2))/k 's
physical power is spent,and then it cost 1 point
of will.

Because of the devil's strong,Ming has to find a way cost least physical power to defeat the devil.

Can you help Xiao Ming to calculate the least physical power he need to consume.
 

Input
The first line of the input is a single integer T(T≤10),
indicating the number of testcases. 

Then T testcases
follow.

The first line contains three integers n,m,k ,meaning
as in the title(1≤n,m≤50,0≤k≤50).

Then the N × M matrix
follows.

In matrix , the integer H meaning
the height of (i,j),and
'#' meaning barrier (Xiao Ming can't come to this) .

Then follow two lines,meaning Xiao Ming's coordinate(x1,y1) and
the devil's coordinate(x2,y2),coordinates
is not a barrier.
 

Output
For each testcase print a line ,if Xiao Ming can beat devil print the least physical power he need to consume,or output "NoAnswer"
otherwise.

(The result should be rounded to 2 decimal places)
 

Sample Input

3
4 4 5
2134
2#23
2#22
2221
1 1
3 3
4 4 7
2134
2#23
2#22
2221
1 1
3 3
4 4 50
2#34
2#23
2#22
2#21
1 1
3 3
 

Sample Output

1.03
0.00

No Answer

这题用宽搜做,用minx[x][y][d]表示走到(x,y)且剩余斗志为d的最少体力,bfs的过程中,只有满足边界条件并且下一步算出来的值要小于min[xx][yy][d]时才把这个点放入队列。

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<string>
#include<algorithm>
using namespace std;
#define ll long long
#define inf 999999999
#define maxn 10050
char gra[55][55];
int vis[55][55];
int tab[10][2]={0,1,-1,0,0,-1,1,0};
int n,m,k,x3,x2,y3,y2;
struct node{
double tili;
int x,y,douzhi;
}q[1111111]; double minx[55][55][55]; void bfs()
{
int i,j,front,rear,x,y,xx,yy,douzhi,dou;
double tili,ti;
front=rear=1;
q[front].x=x3;q[front].y=y3;q[front].tili=0;q[front].douzhi=k;
while(front<=rear){
x=q[front].x;y=q[front].y;tili=q[front].tili;douzhi=q[front].douzhi;
front++;
//printf("%d %d %.2f %d\n",x,y,tili,douzhi);
if(x==x2 && y==y2){
continue;
}
for(i=0;i<4;i++){
xx=x+tab[i][0];yy=y+tab[i][1];
if(xx>=1 && xx<=n && yy>=1 && yy<=m && gra[xx][yy]!='#'){
ti=tili+fabs(gra[xx][yy]-gra[x][y])/(double)douzhi;
dou=douzhi-1;
if(dou==0 || ti>=minx[xx][yy][dou]){
continue;
}
minx[xx][yy][dou]=ti;
rear++;
q[rear].x=xx;q[rear].y=yy;q[rear].tili=ti;q[rear].douzhi=dou;
} } }
} int main()
{
int i,j,T,h;
double ans;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&k);
for(i=1;i<=n;i++){
scanf("%s",gra[i]+1);
}
scanf("%d%d%d%d",&x3,&y3,&x2,&y2);
if(k==0){
printf("No Answer\n");continue;
}
if(x2==x3 && y2==y3){
printf("0.00\n");continue;
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
for(h=1;h<=k;h++){
minx[i][j][h]=inf;
}
}
}
minx[x3][y3][k]=0;
bfs();
ans=inf;
for(i=1;i<=k;i++){
if(ans>minx[x2][y2][i]){
ans=minx[x2][y2][i];
}
}
if(ans==inf){
printf("No Answer\n");
}
else printf("%.2f\n",ans);
}
return 0;
}

hdu5433 Xiao Ming climbing的更多相关文章

  1. HDU 5433 Xiao Ming climbing dp

    Xiao Ming climbing Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/ ...

  2. HDU 5433 Xiao Ming climbing 动态规划

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5433 Xiao Ming climbing Time Limit: 2000/1000 MS (Ja ...

  3. hdu 5433 Xiao Ming climbing(bfs+三维标记)

    Problem Description   Due to the curse made by the devil,Xiao Ming is stranded on a mountain and can ...

  4. HDU 5433 Xiao Ming climbing

    题意:给一张地图,给出起点和终点,每移动一步消耗体力abs(h1 - h2) / k的体力,k为当前斗志,然后消耗1斗志,要求到终点时斗志大于0,最少消耗多少体力. 解法:bfs.可以直接bfs,用d ...

  5. HDu 5433 Xiao Ming climbing (BFS)

    题意:小明因为受到大魔王的诅咒,被困到了一座荒无人烟的山上并无法脱离.这座山很奇怪: 这座山的底面是矩形的,而且矩形的每一小块都有一个特定的坐标(x,y)和一个高度H. 为了逃离这座山,小明必须找到大 ...

  6. HDU 4349 Xiao Ming's Hope lucas定理

    Xiao Ming's Hope Time Limit:1000MS     Memory Limit:32768KB  Description Xiao Ming likes counting nu ...

  7. Hdu4349 Xiao Ming's Hope

    Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. hdu 4349 Xiao Ming's Hope 规律

    Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. HDU 4349——Xiao Ming's Hope——————【Lucas定理】

    Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

随机推荐

  1. Java内存模型与线程(一)

    Java内存模型与线程 TPS:衡量一个服务性能的标准,每秒事务处理的总数,表示一秒内服务端平均能够响应的总数,TPS又和并发能力密切相关. 在聊JMM(Java内存模型)之前,先说一下Java为什么 ...

  2. Java基础进阶类名整理

    类名综合 数学类: Math:数学运算 BigDecimal:用于精确计算数据 数组工具类: Arrays:数组工具类,用于对数组的操作 时间操作: JDK8以前: Date:表示一个时间,并面向对象 ...

  3. .NET Core学习笔记(9)——Entity Framework Core之Code First

    上篇我们介绍了怎么通过已有的SQLServer表来创建实体类,本篇我们改用Code First的方式,由C#代码书写的实体类来生成SQLServer表.并且通过简单的Console APP往SQLSe ...

  4. utraedit不小心把打开文件列表弄得不显示的处理办法

    视图->视图/列表->打开文件标签

  5. leetcode 730. 统计不同回文子序列(区间dp,字符串)

    题目链接 https://leetcode-cn.com/problems/count-different-palindromic-subsequences/ 题意 给定一个字符串,判断这个字符串中所 ...

  6. ctfhub技能树—sql注入—过滤空格

    手注 查询数据库 -1/**/union/**/select/**/database(),2 查询表名 -1/**/union/**/select/**/group_concat(table_name ...

  7. 缓存淘汰算法 LRU 和 LFU

    LRU (Least Recently Used), 即最近最少使用用算法,是一种常见的 Cache 页面置换算法,有利于提高 Cache 命中率. LRU 的算法思想:对于每个页面,记录该页面自上一 ...

  8. 亲测可用!免费下载QQ音乐大部分资源!

    优化后亲测可用!免费下载QQ音乐大部分资源 通知 时间问题 博客园这边暂时停更要下载的去GitHub或者90盘 GitHub项目地址 https://github.com/TotoWang-hhh/m ...

  9. pytest:通过scope控制fixture的作用范围

    一.fixture里面有个参数scope,通过scope可以控制fixture的作用范围,根据作用范围大小划分:session>module>class>function,具体作用范 ...

  10. jvm 三种编译

    https://blog.csdn.net/fuxiaoxiaoyue/article/details/93497558 https://blog.csdn.net/tjiyu/article/det ...