1 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=210,inf=1e9; int d[N][N],v[N],s[N]; signed main() { int n;cin>>n; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%1lld",&d[i][j]); deque<int>q;q.push_back(1);v[1]=0; while(!q.empty()) { int x=q.front();q.pop_front(); for(int j=1;j<=n;j++)if(d[x][j]) { if(!v[j])v[j]=1,s[j]=s[x]^1,q.push_back(j); else if(s[j]==s[x]) { cout<<-1; return 0; } } } for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i!=j&&d[i][j]==0)d[i][j]=inf; for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) if(i!=j&&j!=k&&i!=k) d[i][j]=min(d[i][j],d[i][k]+d[k][j]); int ans=0; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)ans=max(ans,d[i][j]); cout<<ans+1; return 0; }
- 1
信息
- ID
- 8484
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 2
- 上传者