| ||||||||||
| 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 | |||||||||
其它郁闷的地方In Reply To:我晕,死在while(cin>>n)上面了 Posted by:baicaitest at 2009-05-02 11:57:24 1本来想定义0为inf的,怎么也过不了,然后直接把0改成0xfffff,就过了。
附代码
#include <iostream>//1-0转换 不连通判断
using namespace std;
int dis[105][105];
int n,N;
void floyd(){
for (int k=0;k<n;k++)
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
{
if (i!=j)
if (dis[i][k]!=0&&dis[k][j]!=0&&dis[i][k]+dis[k][j]<dis[i][j])
dis[i][j]=dis[i][k]+dis[k][j];
}
}
int main()
{
while (cin>>n&&n){
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
dis[i][j]=0;
for (int i=0;i<n;i++){
cin>>N;
for (int j=0;j<N;j++){
int temp;
cin>>temp;
cin>>dis[i][temp-1];
}
}
floyd();
int node,n2=0;
for (int j=0;j<n;j++){
int m2=0;
for (int k=0;k<n;k++){
if (j!=k){
if (dis[j][k]==0) {m2=0;break;}
if (dis[j][k]>m2) m2=dis[j][k];
}
}
if (m2)
if (m2<n2||n2==0) {n2=m2;node=j+1;}
}
if (!n2) {cout<<"disjoint"<<endl;}
else {cout<<node<<" "<<n2<<endl;}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator