7-7 六度空间 (30 分) 采用floyd最短路去求解的竟然过了

    xiaoxiao2022-07-04  144

    #include <iostream> #include <cstdio> #define INF 0x3f3f3f3f using namespace std; const int maxn=10000; int graph[maxn][maxn]; int n,m; void init() { for(int i=1; i<=n; ++i) { for(int j=1; j<=n; ++j) { if(i==j) graph[i][j]=0; else graph[i][j]=INF; } } } int main() { cin>>n>>m; init(); for(int i=0; i<m; ++i) { int a,b; cin>>a>>b; graph[a][b]=1; graph[b][a]=1; } for(int k=1; k<=n; ++k) { for(int i=1; i<=n; ++i) { for(int j=1; j<=n; ++j) { if(graph[i][j]>graph[i][k]+graph[k][j]) { graph[i][j]=graph[i][k]+graph[k][j]; } } } } for(int j=1; j<=n; ++j) { int cnt=1; for(int i=1; i<=n; ++i) { if(graph[i][j]<=6&&i!=j) cnt++; } printf("%d: %.2f%%\n",j,1.0*cnt*100/n); } return 0; }

     

    最新回复(0)