Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:32ms 1a 代码

Posted by 15914304086 at 2012-04-01 19:09:29 on Problem 3009 and last updated at 2012-04-01 19:13:47
In Reply To:47ms 1a 代码 Posted by:whus2010301500230 at 2012-04-01 17:44:01
//本来考虑用%[^\n]读带空格的字符串,但百思不得其解地实践不了,VS2008太破了……
#include <iostream>
using namespace std;

const int dir[4][2]={{-1,0},{1,0},{0,1},{0,-1}}; 

int main()
{
	int m,n,i,j,sx,sy,k,xx,yy,a,b,mi,x,y,move;
	char maze[22][22];
	int step[450][5];
	while(1)
	{
		cin>>m>>n;
		memset(maze,-1,sizeof(maze));
		sx=m;
		if (m || n)
		{
			for (i=1;i<=n;i++)
			{				
				//cin>>ws>>maze[i]+1;
				//scanf("%[^\n]",maze[i]+1);
				/*if (gx==m)
					for (j=1;j<=m;j++)
						if(maze[i][j]=='3')
						{
							gx=i;
							gy=j;
							break;
						}*/
				for (j=1;j<=m;j++)
				{
					cin>>maze[i]+j;
					if (maze[i][j]=='2')
					{
						sx=i;
						sy=j;
						maze[i][j]='0';
					}
				}
			}
			k=0;
			step[k][0]=sx;
			step[k][1]=sy;
			step[k][2]=4;
			step[k][3]=step[k][4]=-1;
			i=0;
			mi=10;
			x=sx;
			y=sy;
			while(k>=0)
			{
				for (;i<4;i++)
				{
					a=dir[i][0];
					b=dir[i][1];
					xx=x;
					yy=y;
					move=-1;
					while(maze[xx][yy]=='0')
					{
						xx+=a;
						yy+=b;
						move++;
					}
					if (maze[xx][yy]=='3')
						mi=k;
					else
						if (maze[xx][yy]=='1' && move)
							if (k+1<mi)
							{
								k++;
								step[k][2]=i;
								step[k][1]=y;
								step[k][0]=x;
								step[k][4]=yy;
								step[k][3]=xx;
								maze[xx][yy]='0';
								y=yy-b;
								x=xx-a;
								i=0;
								break;
							}
				}
				if (i==4)
				{
					x=step[k][0];
					y=step[k][1];
					i=step[k][2]+1;
					maze[step[k][3]][step[k][4]]='1';
					k--;
				}
			}
			if (mi==10)
				cout<<"-1"<<endl;
			else
				cout<<mi+1<<endl;
		}
		else
			break;
	}
	return 0;
}
				

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator