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 |
Floyd为何也能16MSIn Reply To:我只觉得输入挺麻烦的 Posted by:speedcell4 at 2011-08-19 19:24:11 #include<iostream> #include<string> using namespace std; #define SIZE (101) #define INF (1<<29) int n; int map[SIZE][SIZE]; int findMax(int a,int b) { return a>b?a:b; } int findMin(int a,int b) { return a<b?a:b; } int ReadIn(void) { string a; cin>>a; if(a=="x") return INF; else { int ans=0; for(int i=0,l=a.length();l-i>0;i++) { ans*=10; ans+=(a[i]-'0'); } return ans; } } int floyd(void) { for(int i=0;n-i>0;i++) { for(int j=0;n-j>0;j++) { for(int k=0;n-k>0;k++) { map[j][k]=findMin(map[j][k],map[j][i]+map[i][k]); } } } int ans=0; for(int i=1;n-i>0;i++) { ans=findMax(ans,map[0][i]); } return ans; } int main() { scanf("%d",&n); for(int i=0;n-i>0;i++) { map[i][i]=INF; for(int j=0;i-j>0;j++) { map[i][j]=map[j][i]=ReadIn(); } } printf("%d\n",floyd()); //system("pause"); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator