博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenJ_Bailian——4115鸣人和佐助(带状态的A*)
阅读量:4592 次
发布时间:2019-06-09

本文共 1971 字,大约阅读时间需要 6 分钟。

 

Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u

 

 

Description

佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢?

已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设鸣人可以往上下左右四个方向移动,每移动一个距离需要花费1个单位时间,打败大蛇丸的手下不需要时间。如果鸣人查克拉消耗完了,则只可以走到没有大蛇丸手下的位置,不可以再移动到有大蛇丸手下的位置。佐助在此期间不移动,大蛇丸的手下也不移动。请问,鸣人要追上佐助最少需要花费多少时间?

Input

输入的第一行包含三个整数:M,N,T。代表M行N列的地图和鸣人初始的查克拉数量T。0 < M,N < 200,0 ≤ T < 10 
后面是M行N列的地图,其中@代表鸣人,+代表佐助。*代表通路,#代表大蛇丸的手下。

Output

输出包含一个整数R,代表鸣人追上佐助最少需要花费的时间。如果鸣人无法追上佐助,则输出-1。

Sample Input

样例输入1
4 4 1
#@##
**##
###+
****
样例输入2
4 4 2
#@##
**##
###+
****

Sample Output

样例输出1
6
样例输出2
4

 

跟上一题一个意思……状态差不多……神奇的是这题居然没人做……A*比普通BFS慢……估计是数据太小和我估价函数选的搓的缘故。1A水

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define INF 0x3f3f3f3f#define MM(x,y) memset(x,y,sizeof(x))typedef pair
pii;typedef long long LL;const double PI=acos(-1.0);const int N=205;struct info{ int x; int y; int zkl; int step; int h; bool operator<(const info &b)const { if(step+h!=b.step+b.h) return step+h>b.step+b.h; if(step!=b.step) return step>b.step; if(zkl!=b.zkl) return zkl>b.zkl; }};info S,T,direct[4]={ {0,1,1,0},{0,-1,1,0},{1,0,1,0},{-1,0,1,0}};inline info operator+(const info &a,const info &b){ info c; c.x=a.x+b.x; c.y=a.y+b.y; c.step=a.step+b.step; return c;}inline bool operator==(const info &a,const info &b){ return (a.x==b.x&&a.y==b.y);}int n,m,t;char pos[N][N];int vis[N][N][10];priority_queue
Q;void init(){ MM(pos,0); MM(vis,0); while (!Q.empty()) Q.pop();}bool check(const info &a){ return (a.x>=0&&a.x
=0&&a.y
<=t&&!vis[a.x][a.y][a.zkl]);}inline int ABS(const int &n){ return n<0?-n:n;}int main(void){ int i,j,r; while (~scanf("%d%d%d",&m,&n,&t)) { r=-1; init(); for (i=0; i

转载于:https://www.cnblogs.com/Blackops/p/5766294.html

你可能感兴趣的文章
c# FileStream 类构造函数
查看>>
H3C 帧聚合
查看>>
H3C WLAN相关组织和标准
查看>>
H3C 802.11网络的基本元素
查看>>
redis Set相关命令
查看>>
基于物品的协同过滤(ItemCF)
查看>>
基于用户的协同过滤(UserCF)
查看>>
运行Storm实例
查看>>
MapReduce各个执行阶段
查看>>
Shuffle过程详解
查看>>
Amazon DynamoDB
查看>>
云数据库与其他数据库的关系
查看>>
Amazon AWS
查看>>
Amazon AWS EC2存储
查看>>
Amazon S3和EBS的区别
查看>>
AWS云管理平台
查看>>
NoSQL SimpleDB
查看>>
连接RDS数据库
查看>>
操作RDS数据库
查看>>
分布式并行编程
查看>>