[NOI2007]社交网络

题目描述

在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象。不妨看这样的一个问题。在一个社交圈子里有n个人,人与人之间有不同程度的关系。我 们将这个关系网络对应到一个n个结点的无向图上,两个不同的人若互相认识,则在他们对应的结点之间连接一条无向边,并附上一个正数权值c,c越小,表示两 个人之间的关系越密切。

我们可以用对应结点之间的最短路长度来衡量两个人s和t之间的关系密切程度,注意到最短路径上的其他结点为s和t的联系提供了某种便利, 即这些结点对于s 和t之间的联系有一定的重要程度。我们可以通过统计经过一个结点v的最短路径的数目来衡量该结点在社交网络中的重要程度。

考虑到两个结点A和B之间可能会有多条最短路径。我们修改重要程度的定义如下:

令Cs,t表示从s到t的不同的最短路的数目,Cs,t(v)表示经过v从s到t的最短路的数目;则定义

为结点v在社交网络中的重要程度。

为了使I(v)和Cs,t(v)有意义,我们规定需要处理的社交网络都是连通的无向图,即任意两个结点之间都有一条有限长度的最短路径。

现在给出这样一幅描述社交网络s的加权无向图,请你求出每一个结点的重要程度。

输入输出格式

输入格式:

输入第一行有两个整数,n和m,表示社交网络中结点和无向边的数目。在无向图中,我们将所有结点从1到n进行编号。

接下来m行,每行用三个整数a, b, c描述一条连接结点a和b,权值为c的无向边。注意任意两个结点之间最多有一条无向边相连,无向图中也不会出现自环(即不存在一条无向边的两个端点是相同的结点)。

输出格式:

输出包括n行,每行一个实数,精确到小数点后3位。第i行的实数表示结点i在社交网络中的重要程度。

 

 

 此题n<=200显然可以使用FLOYED来求解,说是使用FLOYED,其实是利用计数型DP的想法

在这里我对一些细节进行一些总结

1.cnt数组的初始化

我们把cnt[i][j]数组当做从i到j的最短路的条数

那么我们在读进来有u->v的一条边的时候。就应该将cnt[u][v]=cnt[v][u]=1;

这是为什么呢?

我们考虑如果u->v这条边确实是u->v的最短路

那么cnt[u][v]=cnt[v][u]=1;日后发现有与之相同的最短路,就,将cnt加在一起

if(dis[i][j]==dis[i][k]+dis[k][j])cnt[i][j]+=cnt[i][k]*cnt[k][j];

我们考虑如果u->v这条边不是u->v的最短路

那么cnt[u][v]一定会在日后将它更新的时候,将cnt[u][v]重新赋值

if(dis[i][j]>dis[i][k]+dis[k][j])
{dis[i][j]=dis[i][k]+dis[k][j];cnt[i][j]=cnt[i][k]*cnt[k][j];
}

1.统计结果

因为s≠t&&s≠v&&t≠v 所以在统计结果一定要加入如下判断

if(dis[i][j]==dis[i][k]+dis[k][j]&&i!=j&&j!=k&&i!=k)

说了这么多,总体实现如下:

#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstring>
#include <map>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef long long ll;
inline ll read()
{register ll p(1),a(0);register char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();if(ch=='-') p=-1,ch=getchar();while(ch>='0'&&ch<='9') a=a*10+ch-48,ch=getchar();return a*p;
}
const int N=110;
ll n,m,dis[N][N],u,v,w;
double cnt[N][N],ton;
int main()
{
//    freopen("input","r",stdin);
//    freopen("output","w",stdout);n=read(),m=read();memset(dis,0x3f,sizeof(dis));for(int i=1;i<=m;i++){u=read(),v=read(),w=read();dis[u][v]=dis[v][u]=w;cnt[u][v]=cnt[v][u]=1;}for(int i=1;i<=n;i++) dis[i][i]=0;for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(dis[i][j]>dis[i][k]+dis[k][j]){dis[i][j]=dis[i][k]+dis[k][j];cnt[i][j]=cnt[i][k]*cnt[k][j];}else if(dis[i][j]==dis[i][k]+dis[k][j])cnt[i][j]+=cnt[i][k]*cnt[k][j];}for(int k=1;k<=n;k++){ton=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) if(dis[i][j]==dis[i][k]+dis[k][j]&&i!=j&&j!=k&&i!=k)ton+=((cnt[i][k]*cnt[k][j])/cnt[i][j]);printf("%.3lf\n",ton);}          return 0;
}

 

转载于:https://www.cnblogs.com/cold-cold/p/10061992.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vueJs的简单入门以及基础语法

vue的api vue官网API 1基础语法 1-1基本数据绑定 <div id"app">{{ msg }} </div> //script new Vue({el:"#app",//代表vue的范围data:{msg:hello Vue //数据} }) 在这个例子中我们可以进行赋值 var app new Vue(...); app.msg 初探vue; //那…

应用数学的强大威力

来源&#xff1a;数学中国 应用数学思想是科研当中非常重要的一种思维方式以及研究方法。今天我们就借助戴世强教授的三篇有关应用数学的文章来详细了解一下这些问题&#xff1a;什么是“应用数学思维”&#xff1f;我们如何在研究中使用应用数学思维&#xff1f;应用数学思维…

正则化实现降噪,分别使用最小二乘、定步长梯度下降和回溯法的梯度下降求解最优解

正则化实现降噪&#xff0c;分别使用最小二乘、定步长梯度下降和回溯法的梯度下降求解最优解 原创文章&#xff01;转载需注明来源&#xff1a;©️ Sylvan Ding’s Blog ❤️ 实验目的 参考 INTRODUCTION TO NONELINEAR OPTIMIZATION. Amir Beck. 2014 的 3.4 Denoising …

双向 RNN

1.基本理论 双向 RNN 结合时间上从序列起点开始移动的 RNN 和另一个时间上从序列末尾开始移动的 RNN 2.逻辑图 其中 h (t) 代表通过时间向前移动的子 RNN 的状态&#xff0c;g (t) 代表通过时间向后移动的子 RNN 的状态 允许输出单元 o (t) 能够计算同时依赖于过去和未来且对时…

Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法

Hadoop伪分布式配置和搭建&#xff0c;hadoop单机安装&#xff0c;wordcount实例测试&#xff0c;hadoop安装java目录怎么找&#xff0c;问题及问题解决方法 环境说明 系统&#xff1a;ubuntu18.04 主机名&#xff1a;test1 用户名&#xff1a;sylvan hadoop单机安装 换源操作…

AI时代竟有智能化鸿沟,具备哪些条件才能跨过?

来源&#xff1a;CSDN移动互联网“早古”时期&#xff0c;普通人因为收入差距问题而无法做到人手一部智能手机&#xff0c;从而导致数字鸿沟。同样&#xff0c;在当前这个AI&#xff0c;也就是人工智能扮演越来越关键作用的时代&#xff0c;企业也站在了类似的抉择交接线上——…

[js] 渲染树构建、布局及绘制

渲染树构建、布局及绘制 转载于:https://www.cnblogs.com/iiiiiher/p/10065345.html

INTRODUCTION TO NONELINEAR OPTIMIZATION Excise 5.2 Freudenstein and Roth Test Function

Amir Beck’s INTRODUCTION TO NONELINEAR OPTIMIZATION Theory, Algorithms, and Applications with MATLAB Excise 5.2 INTRODUCTION TO NONELINEAR OPTIMIZATION Theory, Algorithms, and Applications with MATLAB. Amir Beck. 2014 本文主要涉及题目(ii)的MATLAB部分&…

石正丽/周鹏团队发表冠状病毒新研究,进一步证明新冠非实验室泄漏

来源&#xff1a;中国生物技术网 新冠病毒SARS-CoV-2造成了近一个世纪以来最具破坏性的大流行COVID-19&#xff0c;而其中尚未解决的科学问题之一是这种病毒的自然来源。近日&#xff0c;来自中科院武汉病毒所、中国科学院大学的研究人员在预印本网站BioRxiv上提交了一篇论文&…

L1正则化降噪,对偶函数的构造,求解含L1正则项的优化问题,梯度投影法

L1正则化降噪&#xff0c;对偶函数的构造&#xff0c;求解含L1正则项的优化问题&#xff0c;梯度投影法 本文主要实现L1正则化降噪&#xff0c;L2 正则化降噪的文章在&#xff1a; https://blog.csdn.net/IYXUAN/article/details/121565229 原创文章&#xff01;转载需注明来源…

HBase之Table.put客户端流程(续)

上篇博文中已经谈到&#xff0c;有两个流程没有讲到。一个是MetaTableAccessor.getRegionLocations&#xff0c;另外一个是ConnectionImplementation.cacheLocation。这一节&#xff0c;就让我们单独来介绍这两个流程。首先让我们来到MetaTableAccessor.getRegionLocations。1.…

普华永道:AI规模化应用,基础知识先行

来源&#xff1a;Forbes作者&#xff1a;Cindy Gordon编译&#xff1a;科技行者人工智能&#xff08;AI&#xff09;是正在改变很多行业的游戏规则。据统计&#xff0c;人工智能有望为2030年的全球经济贡献高达15.7万亿美元&#xff0c;比中国和印度目前的产出之和还要多。其中…

ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题

ADMM,ISTA,FISTA算法步骤详解&#xff0c;MATLAB代码&#xff0c;求解LASSO优化问题 原创文章&#xff01;转载需注明来源&#xff1a;©️ Sylvan Ding’s Blog ❤️ 实验目的 了解 ADMM, ISTA, FISTA 算法的基本原理、收敛性和复杂度&#xff1b;使用上述三种算法&#…

Spring详解(八)------事务管理

目录 1、事务介绍2、事务的四个特性&#xff08;ACID&#xff09;3、Spring 事务管理的核心接口4、 PlatformTransactionManager 事务管理器5、TransactionStatus 事务状态6、TransactionDefinition 基本事务属性的定义7、Spring 编程式事务和声明式事务的区别 8、不用事务…

A股光刻胶飙涨背后:仅一家可供应高端光刻胶

来源&#xff1a;芯师爷部分素材来源&#xff1a;前瞻产业研究院、华泰证券5月27日&#xff0c;半导体光刻胶概念股开盘即走强&#xff0c;截至收盘&#xff0c;A股光刻胶板块涨幅达6.48%。其中晶瑞股份、广信材料直线拉升大涨20%封涨停&#xff0c;容大感光大涨13.28%&#xf…

二〇二二注定是踔厉奋发、笃行不怠的一年

2021年&#xff0c;我在生活上、学习上、工作上都有着太多太多遗憾&#xff0c;很多想做的事、计划好的事并没有得到落实。但正如张宇老师所说&#xff0c;人生本来就是一段段幸福夹杂着不可避免的遗憾组成的&#xff0c;所取得的成绩远远大于遗憾&#xff0c;毕竟前途似海&…

为什么机器学习算法难以优化?一文详解算法优化内部机制

来源&#xff1a; 机器之心作者&#xff1a;JONAS DEGRAVE、IRA KORSHUNOVA编辑&#xff1a;小舟选自&#xff1a;engraved.blog损失线性组合是正确的选择吗&#xff1f;这篇文章或许能够给你答案。在机器学习中&#xff0c;损失的线性组合无处不在。虽然它们带有一些陷阱&…

论文作者串通抱团、威胁审稿人,ACM Fellow炮轰「同行评审」作弊

来源&#xff1a;机器之心编辑&#xff1a;陈萍、杜伟布朗大学计算机科学系教授、机器学习研究者、2018 年 ACM Fellow 迈克尔 利特曼&#xff08;Michael L. Littman&#xff09;在 ACM 通讯上发文斥责「部分学者正在威胁计算机科学研究的诚实性」。他在文章中指出了同行评审…

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程实践报告

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程 ⭐️ 本报告的代码部分和程序设计参考了 计算机18-1班张宇哲&#xff08;学号181002406&#xff09;同学 在Gitee仓库发布的AI-Attendance&#xff0c;本文档基于软件工程的具体流程&#xff0c;从软件工程的角度细化的张同学…

浅谈贝叶斯统计

来源&#xff1a;京师统计团总支学生会编辑&#xff1a; ∑Gemini浅谈贝叶斯统计贝叶斯统计是英国学者托马斯贝叶斯在《论有关机遇问题的求解》中提出一种归纳推理的理论&#xff0c;后被一些统计学者发展为一种系统的统计推断方法&#xff0c;称为贝叶斯方法。本文旨在通过实际…