è¿ä¸ªé¢ç®è¦ç¨å¹¿åº¦ä¼å
æç´¢ãææ¾ç»åè¿ä¸ä¸ªå°±æ¯ç¨è¿ç§ç®æ³çé¢ç®ï¼éè¦ç¨éåæ¥åï¼ä½ å
çä¸ä¸é¢ç®ï¼æ¯ææ ¡OJä¸çé¢ç®ãåä¸åèªæçCFç©å®¶Time Limit:1000MS Memory Limit:65536K
Total Submit:49 Accepted:30 Description ä½ä¸ºè®¡ç®æºå¦é¢çå¦çï¼CFåºè¯¥æ¯å¤§å®¶é½å¾çæçä¸æ¬¾æ¸¸æãé£ä¹å¦æä½ æ¯ä¸ä¸ªçæ£çCFç©å®¶ï¼ä¸å¦æ¥è¯ä¸è¿éé¢ç®å§ã
å½ä½ å¨CFingçæ¶åï¼ä»ä¹äºæ
æè®©ä½ éé·å¢ï¼ä¼°è®¡å°±æ¯å½ä½ ä¸æ人åè¦å¼æçæ¶åï¼åç°èªå·±æ²¡æåå¼¹äºå§^_^ãè¿ä¸ªæ¶åæèªæçéæ©å°±æ¯èµ¶å¿«åå°è家å»ä¹°å弹继ç»ææãé£ä¹ææ ·åå°è家éè¦çæ¶é´æçå¢ï¼ï¼
Input è¾å
¥ç第ä¸è¡æ两个æ´æ°N,Måå«è¡¨ç¤ºçæ¯å°å¾ç宽åé¿(1 =< M =< N <= 100)ï¼æ¥ä¸æ¥çNè¡åå«è¾å
¥CFå°å¾çå
·ä½æ
åµãâ@â表示çæ¯ä½ ç°å¨æå¨çä½ç½®,â#â表示çä½ è家çä½ç½®ï¼âXâ表示çæ¯æ人å¯è½åºç°çä½ç½®ï¼è½ç¶æ¯å¯è½åºç°çä½ç½®ï¼ä½æ¯æ²¡æåå¼¹çä½ æ¾ç¶ä¸æ¿æåé©èµ°è¿ä¸ªä½ç½®ï¼å³ä½¿è¦èçæ¶é´ã â*â表示çæ¯ä½ å¯ä»¥æ¾å¿èµ°è¿çå®å
¨ä½ç½®ãOutput æ±åºå¨ä¿è¯å®å
¨çæ¡ä»¶ä¸ä»â@âå°è家â#âæéè¦çæå°æ¶é´å¹¶ä¸è¾åºï¼å设æ¯èµ°ä¸æ¥éè¦ä¸ä¸ªåä½çæ¶é´ï¼ä¸ä½ åªè½åä¸ä¸å·¦å³å个æ¹åèµ°ï¼å¹¶ä¸ä¸è½èµ°åºCSå°å¾çèå´ãå¦æéè¿å®å
¨çä½ç½®ç¹æ æ³å°è¾¾è家ï¼åè¾åºâGAME OVERâSample Input 5 5 ***XX *@XXX **XX# ***X* ***** Sample Output 8 è¿éèµ·ç¹å¨@ï¼ç»ç¹å¨#ï¼X为ä¸è½èµ°çç¹ï¼åªè½ä¸ä¸å·¦å³ç§»å¨ï¼å¾å纯çåå
è·¯å¾æçè·¯é¢ç®ã ææ¾ç»åçACç代ç ï¼æç»ä½ åè¿æ¥ã #include<stdio.h>
#include<algorithm>
#include<queue> using namespace std; int flag[105][105];
int start_x,start_y,end_x,end_y;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int m,n,loop;
struct node
{
int x,y,step;
}; int judge(int x,int y)
{
if(x>=0&&x<m&&y>=0&&y<n)
return 1; return 0;
} void BFS(int a,int b)
{
int k,now_x,now_y;
queue<node>king;
node tiger1,tiger2;//两åªèèï¼ä¸¤åªèèï¼è·å¾å¿«è·å¾å¿«ãããã
tiger2.x=a;
tiger2.y=b;
tiger2.step=0;
king.push(tiger2);
while(!king.empty())
{
tiger1=king.front();
king.pop();
if(tiger1.x==end_x&&tiger1.y==end_y)
{
loop=0;
printf("%d\n",tiger1.step);
break;
}
for(k=0;k<4;k++)
{
now_x=tiger1.x+dx[k];
now_y=tiger1.y+dy[k];
if(judge(now_x,now_y)&&flag[now_x][now_y])
{
flag[now_x][now_y]=0;
tiger2.x=now_x;
tiger2.y=now_y;
tiger2.step=tiger1.step+1;
king.push(tiger2);
}
}
}
} int main()
{
int i,j;
char map[105][105];
memset(flag,0,sizeof(flag));
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
scanf("%s",map[i]);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(map[i][j]=='@')
{
start_x=i;
start_y=j;
flag[i][j]=1;
}
else if(map[i][j]=='#')
{
end_x=i;
end_y=j;
flag[i][j]=1;
}
else if(map[i][j]=='*')
flag[i][j]=1;
}
loop=1;
flag[start_x][start_y]=0;
BFS(start_x,start_y);
if(loop)
printf("GAME OVER\n");
return 0;
} //å¦é¿è¯´æè¿æ¯å
¸åç90ååæ³ã//ä½ çä¸æçè¯å°±å æå£å£å§ï¼510685263//å¸æé纳ï¼è°¢è°¢ï¼ï¼
温馨提示:内容为网友见解,仅供参考