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:为什么是Run time error?In Reply To:为什么是Run time error? Posted by:sanpin at 2006-11-20 19:12:40 > /* simply using Dijkastra*/ > #include <iostream> > #include <cstring> > using namespace std; > > const int MAXSIZE=1010; > const int MAXINT=5000; > typedef struct > { > int next,dist; > }NextPoint; > > int landMark[MAXSIZE][MAXSIZE]={0};//describe distance bettween land marks > int close[MAXSIZE];// points to choose from > bool marked[MAXSIZE]={false};// points already included > int N,T; > > void Input() > { > cin>>N>>T; > int i,j; > > while (T--) > { > cin>>i>>j; > cin>>landMark[i][j]; > landMark[j][i]=landMark[i][j]; > } > /* for (i=1;i<=N;i++) > { > for (j=1;j<=N;j++) > cout<<landMark[i][j]<<' '; > cout<<endl; > }*/ > } > > void FindClose(NextPoint &p) > { > int i; > int closestDist=MAXINT,closestPoint; > > for (i=1;i<=N;i++) > { > if (!marked[i]&&close[i]!=0&&close[i]<closestDist) > { > closestDist=close[i]; > closestPoint=i; > } > } > // cout<<"Dis & add:"<<closestDist<<' '<<closestPoint<<endl; > p.dist=closestDist; > p.next=closestPoint; > } > > void UpdateDist(NextPoint &p) > { > int i; > for (i=1;i<=N;++i) > { > if (!marked[i]&&landMark[p.next][i]!=0&&(p.dist+landMark[p.next][i]<close[i]||close[i]==0)) > { > close[i]=p.dist+landMark[p.next][i]; > } > } > } > > > int main() > { > Input(); > int i; > for (i=1;i<=N;i++) > { > close[i]=landMark[N][i]; > } > NextPoint p; > marked[N]=true; //added start point > > while (1) > { > FindClose(p); > marked[p.next]=true; > if (marked[1]) > break; > UpdateDist(p); > } > cout<<p.dist<<endl; > return 0; > } > > > > > > Input is not N T It is T N -_-;;;;; Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator