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 |
Re:为什么在这里AC,然后在ZOJ提交会出现Segmentation Fault 郁闷了!In Reply To:为什么在这里AC,然后在ZOJ提交会出现Segmentation Fault 郁闷了! Posted by:Sunde at 2010-03-08 16:39:29 > #include <cstdio> > #include <cmath> > > #define MAXN 1000 > > const double inf = 1e99; > using namespace std; > > double g[MAXN][MAXN],x[MAXN],y[MAXN],d[MAXN]; > bool final[MAXN]; > int n; > int main() > { > int i,j,v; > double dis,min; > freopen("c:\\in.txt","r",stdin); > > for (i=0;i<MAXN;i++) > for (j=0;j<MAXN;j++) > g[i][j] = (i==j?0.0:inf); > > scanf("%lf%lf%lf%lf",&x[0],&y[0],&x[1],&y[1]); > n=2; > while(scanf("%lf%lf",&x[n],&y[n])!=EOF) > { > n++; > while(true) > { > scanf("%lf%lf",&x[n],&y[n]); > if (x[n]==-1&&y[n]==-1) > break; > g[n-1][n] = g[n][n-1] = sqrt((x[n]-x[n-1])*(x[n]-x[n-1])+(y[n]-y[n-1])*(y[n]-y[n-1]))/40000.0*60.0; > n++; > } > } > //计算需要步行的点对 > for (i=0;i<n;i++) > for (j=i+1;j<n;j++) > { > dis = sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]))/10000.0*60.0; > if (dis<g[i][j]) > g[i][j]= g[j][i] = dis; > } > //Dijkstra > for (i=0;i<n;i++) > { > final[i] = false; > d[i] = g[0][i]; > } > > final[0] = true; > v = 0; > for (i=1;i<n;i++) > { > min = inf; > for (j=0;j<n;j++) > if (!final[j]&&d[j]<min) > { > v = j; > min = d[j]; > } > final[v] = true; > for (j=0;j<n;j++) > if (!final[j]&&(min+g[v][j]<d[j])) > d[j] = min+g[v][j]; > } > printf("%d\n",int(d[1]+0.5)); > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator