HDU 1242 Rescue
2015-07-26 21:40
369 查看
题目地址:点击打开链接
思路:从天使搜朋友,得出最短的时间
AC代码:
#include<iostream>
#include<cstring>
using namespace std;
char a[210][210];
int visit[210][210];
int starti,startj,min1,flag;
int x[4] = {-1,1,0,0} ,y[4] = {0,0,-1,1};
void dfs(int i,int j,int len)
{
int k,m,n;
if(len > min1)
return;
if(a[i][j] == 'r' && len < min1)
{
flag = 1;
min1 = len;
return;
}
if(a[i][j] == 'x')
len++;
visit[i][j] = 1;
for(k=0; k<4; k++)
{
m = i + x[k];
n = j + y[k];
if(a[m]
!= '#' && !visit[m]
)
{
dfs(m,n,len+1);
}
}
visit[i][j] = 0;
}
int main()
{
int n,m,i,j;
while(cin>>n>>m)
{
flag = 0;
min1 = 100000000;
memset(a,'#',sizeof(a));//在外面围一层,省的判断
memset(visit,0,sizeof(visit));
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
cin>>a[i][j];
if(a[i][j] == 'a')
{
starti = i;
startj = j;
}
}
}
visit[starti][startj] = 1;
dfs(starti,startj,0);
if(flag)
cout<<min1<<endl;
else
cout<<"Poor ANGEL has to stay in the prison all his life." <<endl;
}
return 0;
}
思路:从天使搜朋友,得出最短的时间
AC代码:
#include<iostream>
#include<cstring>
using namespace std;
char a[210][210];
int visit[210][210];
int starti,startj,min1,flag;
int x[4] = {-1,1,0,0} ,y[4] = {0,0,-1,1};
void dfs(int i,int j,int len)
{
int k,m,n;
if(len > min1)
return;
if(a[i][j] == 'r' && len < min1)
{
flag = 1;
min1 = len;
return;
}
if(a[i][j] == 'x')
len++;
visit[i][j] = 1;
for(k=0; k<4; k++)
{
m = i + x[k];
n = j + y[k];
if(a[m]
!= '#' && !visit[m]
)
{
dfs(m,n,len+1);
}
}
visit[i][j] = 0;
}
int main()
{
int n,m,i,j;
while(cin>>n>>m)
{
flag = 0;
min1 = 100000000;
memset(a,'#',sizeof(a));//在外面围一层,省的判断
memset(visit,0,sizeof(visit));
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
cin>>a[i][j];
if(a[i][j] == 'a')
{
starti = i;
startj = j;
}
}
}
visit[starti][startj] = 1;
dfs(starti,startj,0);
if(flag)
cout<<min1<<endl;
else
cout<<"Poor ANGEL has to stay in the prison all his life." <<endl;
}
return 0;
}
相关文章推荐
- CC2540/CC2541 : Set the Peripheral Being Advertising while It is Being Connected
- 通过setSystemUiVisibility实现状态栏跟Activity之间的位置关系
- UIImage类目-返回一张拉伸的图片、自动设配6 7
- Ubuntu 安装配置MySQL,并使用VS的Server Explorer UI界面远程管理MySQL
- his class is not key value coding-compliant for the key
- 关于android ui开发处理的问题
- PAT (Advanced Level) 1051. Pop Sequence (25) 是否为pop序列,模拟栈的操作
- HDU5312——数学——Sequence(未完成)
- UI003---transform属性
- hdu 5288 - OO’s Sequence 数学
- UI002---自定义控件
- POJ2533 Longest Ordered Subsequence(最长递增子序列)
- BUILD ROOT编译记录
- web_custom_request
- UI001---UIButton
- JavaEE基础---java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
- HDU 5312 Sequence (规律题)
- Android Gradle Plugin指南(五)——Build Variants(构建变种版本)
- Number Sequence 重在找规律,48一循环
- hdu 5312 Sequence【数学推导】