当前位置:首页 > 芯闻号 > 充电吧
[导读]题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242 题面: Rescue Time Limit: 2000/1000 MS (Java/Oth

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242


题面:

Rescue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 25017    Accepted Submission(s): 8862


Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison.

Angel's friends want to save Angel. Their task is: approach Angel. We assume that "approach Angel" is to get to the position where Angel stays. When there's a guard in the grid, we must kill him (or her?) to move into the grid. We assume that we moving up, down, right, left takes us 1 unit time, and killing a guard takes 1 unit time, too. And we are strong enough to kill all the guards.

You have to calculate the minimal time to approach Angel. (We can move only UP, DOWN, LEFT and RIGHT, to the neighbor grid within bound, of course.)
 
Input First line contains two integers stand for N and M.

Then N lines follows, every line has M characters. "." stands for road, "a" stands for Angel, and "r" stands for each of Angel's friend. 

Process to the end of the file.
 
Output For each test case, your program should output a single integer, standing for the minimal time needed. If such a number does no exist, you should output a line containing "Poor ANGEL has to stay in the prison all his life." 
 
Sample Input
7 8
#.#####.
#.a#..r.
#..#x...
..#..#.#
#...##..
.#......
........


 

Sample Output
13


 

Author CHEN, Xue  
Source ZOJ Monthly, October 2003   解题:

    从a出发去找r,用优先队列,当前cost值小的,优先级高,只要找到一个r就可以结束了。


代码:

#include 
#include 
#include 
#include 
#include 
#include 
#define eps 1e-8
#define LL long long
using namespace std;
int n,m,ans,dir[4][2]={0,-1,-1,0,0,1,1,0};
char mapp[202][202];
bool vis[202][202];
struct step
{
	int x,y,cost;
	bool operator <(const step &b)const
	{
		return cost>b.cost;
	}
};
priority_queue  qe;
void bfs(int x,int y)
{
	while(!qe.empty())
	  qe.pop();
	int tx,ty;
	step tmp,cur;
	tmp.x=x;
	tmp.y=y;
	tmp.cost=0;
	qe.push(tmp);
	while(!qe.empty())
	{
		cur=qe.top();
		qe.pop();
		for(int i=0;i<4;i++)
		{
			tx=cur.x+dir[i][0];
			ty=cur.y+dir[i][1];
			if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!vis[tx][ty])
			{
				if(mapp[tx][ty]=='r')
				{
					vis[tx][ty]=1;
					  ans=cur.cost+1; 
			        return; 
				}
				else if(mapp[tx][ty]=='x')
				{
					tmp.x=tx;
					tmp.y=ty;
					tmp.cost=cur.cost+2;
					qe.push(tmp);
				}
				else
				{
					vis[tx][ty]=1;
					tmp.x=tx;
					tmp.y=ty;
					tmp.cost=cur.cost+1;
					qe.push(tmp);
				}
			}
		}
	}
}
int main()
{ 
  while(~scanf("%d%d",&n,&m))
  {
  int xa,ya,cnt=0;
  memset(vis,0,sizeof(vis));
  ans=50000;
  for(int i=1;i<=n;i++)
  {
  	for(int j=1;j<=m;j++)
  	{
	  	scanf(" %c",&mapp[i][j]);
	  	if(mapp[i][j]=='a')
	  	{
	  		xa=i;
	  		ya=j;
	  		vis[i][j]=1;
	  	}
	  	else if(mapp[i][j]=='r')
	  	{
	  		cnt++;
	  	}
	  	else if(mapp[i][j]=='#')
	  	   vis[i][j]=1;
    }
  } 
  if(cnt==0)
    printf("Poor ANGEL has to stay in the prison all his life.n");
  else
  {
  	bfs(xa,ya);
  	if(ans==50000)
  	  printf("Poor ANGEL has to stay in the prison all his life.n");
    else
      printf("%dn",ans);
  }
  }
  return 0;	
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

百度搜索中台系统不但承接了搜索的阿拉丁流量,也致力于构建各个垂直业务的搜索能力。

关键字: 百度 搜索中台 搜索

提到搜索,很多人第一时间想到的就是百度、搜狗、360

关键字: 搜索

专注于引入新品推动行业创新的电子元器件分销商贸泽电子 (Mouser Electronics) 发布了全新升级的技术资源中心,这个可搜索的资源库中包含贸泽这家全球分销商不断扩充的技术文章、博客文章、电子书和Methods...

关键字: 贸泽电子 技术资源中心 搜索

最近,美国司法部对谷歌公司提起了反垄断诉讼,其中一个关键指控就是谷歌与苹果达成的秘密默认搜索协议。

关键字: 苹果 谷歌 搜索

22年前,司法部的反垄断审查对象是微软,最终,一场“跨世纪”的审判轰动全球。22年后,这把达摩克利斯之剑悬在了谷歌头上。

关键字: 反垄断 微软 搜索

8月25日消息,又到一年一度牛郎织女鹊桥相会的七夕节,这是情侣们的“发糖”秀恩爱环节。百度发布七夕搜索大数据,对暖男们的七夕搜索行为进行分析。 百度搜索大数据显示,从年龄上来看, 80、90后是暖男聚

关键字: 上海人 奢侈品 七夕 搜索

多元化收入对百度来说,还是一条艰难的路。 北京时间8月14日,百度(NASDAQ:BIDU)发布了截至2020年6月30日未经审计的第二季度财务报告。 财报显示,2020年第二季度,业绩达到总收入26

关键字: 搜索 百度 谷歌

北京时间7月30日凌晨消息,美国当地时间周三(北京时间30日凌晨),亚马逊、苹果、谷歌母公司Alphabet、Facebook的首席执行官将首次集体出席众议院听证会,接受立法者的质询。 Alphabe

关键字: 搜索 皮查伊 谷歌

7月27日晚间,中国第二大搜索公司搜狗宣布收到腾讯的私有化收购要约,腾讯准备将以每股9美元的价格收购搜狗的其他股份,若收购成功,搜狗公司将从美国股市退市。截止发稿时,受此影响,搜狗股价大涨48%,报价

关键字: 搜狗 搜索 收购 腾讯

北京时间7月29日消息,谷歌公司CEO桑达尔·皮查伊(Sundar Pichai)在预先准备好的反垄断听证会证词中称,公司在搜索领域面临众多对手。皮查伊称:“当你在网上搜素产品时,你可能会登陆亚马逊、

关键字: 搜索 谷歌
关闭
关闭