Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
谁帮我看看 我的代码为什么超时啊#include<iostream> #include<queue> #include<cstring> using namespace std; bool used[300][300]; int l; struct point { int x; int y; }; bool pd(int x,int y) { if(x>=0 && x<l && y>=0 && y<l) return true; return false; } int BFS(int x1,int y1,int x2,int y2) { for(int i=0;i<300;i++) for(int j=0;j<300;j++) used[i][j] = false; int s=0; queue<point> a; struct point p; p.x = x1; p.y = y1; a.push(p); used[x1][y2]=true; while(true) { int temp=a.size(); while(temp--) { struct point head=a.front(); if(head.x == x2 && head.y == y2) return s; p.x = head.x-2; p.y = head.y-1; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x-1; p.y = head.y-2; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x-2; p.y = head.y+1; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x-1; p.y = head.y+2; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x+2; p.y = head.y+1; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x+1; p.y = head.y+2; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x+2; p.y = head.y-1; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } p.x = head.x+1; p.y = head.y-2; if(pd(p.x,p.y) && !used[p.x][p.y]) { a.push(p); used[p.x][p.y]=true; } a.pop(); } s++; } } int main() { //freopen("data.in","r",stdin); //freopen("data.out","w",stdout); int x1,y1,x2,y2,t; for(cin>>t;t>0;t--) { scanf("%d%d%d%d%d",&l,&x1,&y1,&x2,&y2); cout<<BFS(x1,y1,x2,y2)<<endl; } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator