当前位置:   article > 正文

PAT6-09. 社交网络图中结点的“重要性”计算_7-1 社交网络图中结点的“重要性”计算 (70 分)

7-1 社交网络图中结点的“重要性”计算 (70 分)

用bfs计算无权图的最短路径

  1. #include<queue>
  2. #include<algorithm>
  3. #include<cstdio>
  4. #include<vector>
  5. #include<bitset>
  6. using namespace std;
  7. const int N=10005,INF=1<<30;
  8. vector<int> adj[N];
  9. int n,m;
  10. double bfs(int k){
  11. bitset<N>used;
  12. int dis[N];fill_n(dis,N,INF);dis[k]=0;
  13. queue<int>Q; Q.push(k);used.set(k);
  14. while(Q.size()){
  15. int ft=Q.front();Q.pop();
  16. for(auto x:adj[ft])
  17. if(!used[x]){
  18. used.set(x);
  19. Q.push(x);
  20. dis[x]=dis[ft]+1;
  21. }//for
  22. }//while
  23. double ret(0.0);
  24. for(int i=1;i<=n;++i)
  25. if(dis[i]==INF)return 0.0;
  26. else ret+=dis[i];
  27. return (n-1)/ret;
  28. }
  29. int main(){
  30. scanf("%d%d",&n,&m);
  31. while(m--){
  32. int a,b;scanf("%d%d",&a,&b);
  33. adj[a].push_back(b);
  34. adj[b].push_back(a);
  35. }
  36. int cnt;scanf("%d",&cnt);
  37. while(cnt--){
  38. int k;scanf("%d",&k);
  39. printf("Cc(%d)=%.2lf\n",k,bfs(k));
  40. }
  41. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/677483
推荐阅读
相关标签
  

闽ICP备14008679号