麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Battle City

2019-11-14 10:15:15
字體:
來源:轉載
供稿:網友

Description

Many of us had played the game “Battle city” in our childhood, and some people (like me) even often play it on computer now.

What we are discussing is a simple edition of this game. Given a map that consists of empty spaces, rivers, steel walls and brick walls only. Your task is to get a bonus as soon as possible suppose that no enemies will disturb you (See the following picture).

Your tank can’t move through rivers or walls, but it can destroy brick walls by shooting. A brick wall will be turned into empty spaces when you hit it, however, if your shot hit a steel wall, there will be no damage to the wall. In each of your turns, you can choose to move to a neighboring (4 directions, not 8) empty space, or shoot in one of the four directions without a move. The shot will go ahead in that direction, until it go out of the map or hit a wall. If the shot hits a brick wall, the wall will disappear (i.e., in this turn). Well, given the description of a map, the positions of your tank and the target, how many turns will you take at least to arrive there?

Input

The input consists of several test cases. The first line of each test case contains two integers M and N (2 <= M, N <= 300). Each of the following M lines contains N uppercase letters, each of which is one of ‘Y’ (you), ‘T’ (target), ‘S’ (steel wall), ‘B’ (brick wall), ‘R’ (river) and ‘E’ (empty space). Both ‘Y’ and ‘T’ appear only once. A test case of M = N = 0 indicates the end of input, and should not be PRocessed.

Output

For each test case, please output the turns you take at least in a separate line. If you can’t arrive at the target, output “-1” instead.

Sample Input

3 4 YBEB EERE SSTE 0 0

Sample Output

8

題解

#include<cstdio>#include<cstring>#include<queue>#define MAX_N 302#define INF 0x3f3f3f3fusing namespace std;int ox[]={0,0,-1,1};int oy[]={1,-1,0,0};char map[MAX_N][MAX_N];int dp[MAX_N][MAX_N];int M,N;int bfs(){ memset(dp,0x3f,sizeof(dp)); queue<pair<int,int> > que; for(int j=0;j<M;j++) for(int k=0;k<N;k++) if(map[j][k]=='Y'){ que.push(make_pair(j,k)); dp[j][k]=0; break; } int J,K; for(J=0;J<M;J++){ for(K=0;K<N;K++) if(map[J][K]=='T') break; if(map[J][K]=='T') break; } map[J][K]='E'; while(!que.empty()){ int Y=que.front().first,X=que.front().second;que.pop(); int S=dp[Y][X]+1; for(int i=0;i<4;i++){ int y=Y+oy[i]; int x=X+ox[i]; if(0<=y&&y<M&&0<=x&&x<N&&(map[y][x]=='E'||map[y][x]=='B')){ int r=map[y][x]=='B'?1:0; if(dp[y][x]<=r+S) continue; dp[y][x]=r+S; que.push(make_pair(y,x)); } } } return dp[J][K]==INF?-1:dp[J][K];}int main(){ while(~scanf("%d%d",&M,&N)&&M&&N){ for(int i=0;i<M;i++) scanf("%s",map[i]); printf("%d/n",bfs()); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久青草免费视频 | 国产福利不卡一区二区三区 | 欧美黄色免费视频 | 日韩欧美综合在线 | 日韩视频区 | 国产午夜精品久久久久婷 | 国产一区二区三区四区五区加勒比 | 国产91久久久 | 91精品国产乱码久久桃 | 久久久久久久久久性 | 黄色一级片免费在线观看 | 久久精品av | 欧美日韩在线中文字幕 | 亚洲午夜久久久精品一区二区三区 | 亚洲va国产va | 一级视频片 | 搜一级毛片 | 日韩黄色av网站 | 海外中文字幕在线观看 | 色妞视频男女视频 | 亚洲第一成人在线观看 | 国产精品av久久久久久网址 | 日韩毛片在线看 | 国产成人精品免费视频大全办公室 | 中文字幕欧美视频 | 国产99久久久久久免费看 | 精品国产成人 | 国产精品午夜未成人免费观看 | 日日摸夜夜骑 | 国产精品麻豆一区二区三区 | 一区二区免费看 | 国产毛片aaa一区二区三区视频 | 久久综合婷婷 | 欧美激情天堂 | 欧洲成人综合网 | 美女av在线免费观看 | 美女黄网站免费观看 | 免费久久久久久 | 色av综合在线 | 午夜视频免费在线观看 | 国产亚洲精品久久久久久久 |