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<cstdio> #include<algorithm> #include<queue> #include<cstring> #include<cmath> using namespace std; const int MAX_H=300,MAX_M=300,M=50000,INF=10000; int last=0; int dx[5]={1,0,0,-1,0}; int dy[5]={0,-1,1,0,0}; int dp[MAX_H][MAX_M]; int a[MAX_H][MAX_M]; struct Metor { int x,y,t; }; Metor m[M]; typedef Metor P; int bfs() { memset(dp, 0, sizeof(dp)); queue<P> que; P now; now.x=0; now.y=0; now.t=0; que.push(now); while(que.size()) { P p=que.front(); que.pop(); for(int j=0;j<4;j++) { p.x=p.x+dx[j]; p.y=p.y+dy[j]; p.t++; if(p.x>=0 && p.y>=0 && a[p.y][p.x]>p.t && !dp[p.y][p.x]) { dp[p.y][p.x]=1; if(a[p.y][p.x]>last) { return p.t; } que.push(p); } } } return -1; } int main() { scanf("%d",&M); for(int i=0;i<M;i++) { scanf("%d%d%d",&m[i].x,&m[i].y,&m[i].t); } memset(a,INF,sizeof(a)); for(int i=0;i<M;i++) { last=max(last,m[i].t); for(int j=0;j<5;j++) { int nx=m[i].x+dx[i]; int ny=m[i].y+dy[i]; if(nx>=0 && ny>=0 && a[ny][nx]>m[i].t) { a[ny][nx]=m[i].t; } } } if(a[0][0]==0) { printf("-1\n"); } else { printf("%d\n",bfs()); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator