题意:

 思路:对每个输入的点跑一遍dijkstra算法,然后对这个点到所有点的距离求和按公式输出就可以了。

(这次尝试了用数组模拟链表来做最短路问题,刷新了自己对最短路的理解)

这里构造链表的过程我的理解一直有误差,第一行的式子中参与代码构建的是Next[cnt] = head[y];head[y] = cnt++;这两个语句。而前边的只是存了编号为cnt的边的另一个端点和这条边的花费。

讲解见大佬博客:https://blog.csdn.net/major_zhang/article/details/52155279

代码:

 #include <iostream>
#include <queue>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#define INF 0x3f3f3f3f
#define FRE() freopen("in.txt","r",stdin) using namespace std;
typedef long long ll;
typedef pair<int,string> P;
const int maxn = ;
int Next[maxn],head[maxn],u[maxn],cost[maxn];
int dist[maxn],vis[maxn];
int n,m; int cnt = ;
void InsertEdge(int x,int y) {
u[cnt] = x;cost[cnt] = ;Next[cnt] = head[y];head[y] = cnt++;
u[cnt] = y;cost[cnt] = ;Next[cnt] = head[x];head[x] = cnt++;
} void init() {
memset(head,-,sizeof(head));
scanf("%d%d",&n,&m);
for(int i = ; i<m; i++) {
int st,en;
scanf("%d%d",&st,&en);
InsertEdge(st,en);
}
} void Dijkstra(int v) {
memset(dist,INF,sizeof(dist));
for(int i = head[v]; ~i ; i = Next[i]) {
dist[u[i]] = cost[i];
}
memset(vis,,sizeof(vis));
vis[v] = ;
dist[v] = ;
while() {
int t = -;
for(int i = ; i<=n; i++) {//寻找当前点的序列中还没有访问的最小的距离的点,这里的i指的是点
if(!vis[i] && (t==- || dist[t]>dist[i]))
t = i;
}
if(t == -)
break;
vis[t] = ;
for(int i = head[t]; ~i; i = Next[i]) {//从与该点相连的边找最小的花费,这里的i其实是表示的标号cnt
if(dist[u[i]] > dist[t]+cost[i]){
dist[u[i]] = dist[t]+cost[i];
}
//dist[u[i]] = min(dist[u[i]], dist[t]+cost[i]);
}
}
bool ok = false;
int sum = ;
for(int i = ; i<=n; i++) {
if(dist[i]==INF) {
ok = true;
//cout<<"GG"<<endl;
break;
}
sum += dist[i];
}
// printf("sum: %d n: %d\n",sum,n); if(ok)
printf("Cc(%d)=0.00\n",v);
else
printf("Cc(%d)=%.2f\n",v,(1.0*(n-))/(1.0*sum));
} int main() {
//FRE();
int n,m;
init();
int num,t;
scanf("%d",&num);
for(int i = ; i<num; i++) {
scanf("%d",&t);
Dijkstra(t);
}
return ;
}

7-11 社交网络图中结点的“重要性”计算 (30 分)(Dijkstra算法)的更多相关文章

  1. 社交网络图中结点的“重要性”计算 (30 分) C++解法

    社交网络图中结点的"重要性"计算 (30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓 ...

  2. PTA数据结构与算法题目集(中文) 7-36 社交网络图中结点的“重要性”计算 (30 分)

    PTA数据结构与算法题目集(中文)  7-36 社交网络图中结点的“重要性”计算 (30 分) 7-36 社交网络图中结点的“重要性”计算 (30 分)   在社交网络中,个人或单位(结点)之间通过某 ...

  3. PTA 社交网络图中结点的“重要性”计算(30 分)

    7-12 社交网络图中结点的“重要性”计算(30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互 ...

  4. PTA 7-12(图) 社交网络图中结点的“重要性”计算 最短路

    7-12(图) 社交网络图中结点的“重要性”计算 (30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的 ...

  5. 7-10 社交网络图中结点的“重要性”计算(30 point(s)) 【并查集+BFS】

    7-10 社交网络图中结点的"重要性"计算(30 point(s)) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络 ...

  6. PAT-1018(Public Bike Management)最短路+额外条件+所有最短路中找出满足条件的路径+dijkstra算法

    Public Bike Management PAT-1018 使用一个vector来存储所有最短路的前驱结点,再通过使用dfs和一个额外的vector记录每一条路径 #include<iost ...

  7. 測试oracle 11g cluster 中OLR的重要性

     測试oracle 11g cluster 中OLR的重要性 called an Oracle Local Registry (OLR): each node in a cluster has a ...

  8. 第11讲- Android中进程及其优先级

    第11讲Android中进程及其优先级 进程与线程: 进程:操作系统结构的基础,资源分配的最小单元,一个操作系统包括多个进程: 线程:线程存在于进程当中,是操作系统调试执行的最小单元,一个进程包括多个 ...

  9. Android菜鸟的成长笔记(11)——Android中的事件处理

    原文:[置顶] Android菜鸟的成长笔记(11)——Android中的事件处理 Android提供了两种方式来处理事件,一个是基于回调的事件处理,另一个是基于监听的事件处理,举个例子: 基于回调的 ...

随机推荐

  1. 一款炫酷Loading动画--载入失败

    简单介绍 上一篇文章一款炫酷Loading动画–载入成功.给大家介绍了成功动画的绘制过程,这篇文章将接着介绍载入失败特效的制作. 相比成功动画,有了前面的经验,失败动画的过程就显得比較简单了. 动画结 ...

  2. LeetCode 168. Excel Sheet Column Title (Excel 表格列名称)

    Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...

  3. BeautifulSoup中各种html解析器的比較及使用

    Beautiful Soup解析器比較 ·Beautiful Soup支持各种html解析器.包含python自带的标准库.还有其它的很多第三方库模块. 当中一个就是lxml parser,至于lxm ...

  4. ubuntu 16.04 Hbase 安装

    1.解压安装包至路径 /usr/local 1.1.sudo tar -zxf ~/下载/hbase-1.1.2-bin.tar.gz -C /usr/local 2.将解压的文件名hbase-1.1 ...

  5. 【WIP】Bootstrap nav

    创建: 2017/09/28   更新: 2017/10/14 标题加上[WIP]

  6. codevs1293送给圣诞夜的极光(bfs)

    1293 送给圣诞夜的极光  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 圣诞老人回到了北极圣诞区,已经快到12点了 ...

  7. 慕课网6-2 作业:js实现轮播特效

    小伙伴们,掌握了JavaScript的语法.流程控制语句.内置对象以及DOM和BOM的知识,运用所学知识完成如下图所示的交互效果——轮播图.效果图如下: 具体交互效果图参考gif动态效果图,gif效果 ...

  8. Git 迁库 标签

    Git迁库 (一)克隆裸库 git clone --bare https://github.com/SunArmy/Tourist.git 克隆之后进入该目录下是这样的 (二)创建新的版本库 这里我已 ...

  9. BZOJ 4140 凸包+二进制分组

    思路: $(x_0-x)^2+(y_0-y)^2<=x^2+y^2$ $y>=(-x_0/y_0)x+(x_0^2+y_0^2)/2y0$ 这显然就是凸包了 以一个斜率不断向下(上)走   ...

  10. 【BZOJ1483】[HNOI2009]梦幻布丁(平衡树启发式合并+并查集)

    题目: BZOJ1483 分析: (这题码了一下午,码了近250行,但是意外跑的比本校各位神仙稍快,特写博客纪念) 首先能看出一个显然的结论:颜色段数只会变少不会变多. 我们考虑用并查集维护区间,对于 ...