洛谷——P2047 [NOI2007]社交网络
P2047 [NOI2007]社交网络
$Floyd$,一眼看到就是他(博主是不小心瞄到了这个题的标签吧qwq)

这个题目只要预处理出$S$到$T$的最短路的条数即可,类似$Spfa$的更新方法
如果当前枚举的$k$可以更新$i$到$j$的最短路,那么就更新最短路,同时$i$到$j$的最短路条数更新为$p[i][k]*p[k][j]$根据乘法原理,$p[i][j]$表示$i$到$j$的最短路条数
最后统计一下就可以了,也是$N^3$暴力枚举
注意:要开$long$$long$
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring> #define N 105
#define LL long long
using namespace std; int n,m;
LL d[N][N],p[N][N];
double im[N]; int main()
{
scanf("%d%d",&n,&m);
memset(d,0x7f,sizeof(d));
for(int u,v,w,i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
d[u][v]=min(d[u][v],(LL)w);
d[v][u]=min(d[v][u],(LL)w);
p[u][v]=p[v][u]=;
} for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
if(d[i][k]==d[][]&&d[k][j]==d[][]) continue;
if(d[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]+d[k][j],p[i][j]=p[i][k]*p[k][j];
else if(d[i][k]+d[k][j]==d[i][j]) p[i][j]+=p[i][k]*p[k][j];
} for(int v=;v<=n;v++){
for(int s=;s<=n;s++){
for(int t=;t<=n;t++){
if(v==s||s==t||v==t) continue;
if(d[s][v]+d[v][t]==d[s][t])
im[v]+=(1.0*p[s][v]*p[v][t])/(double)p[s][t];
}
}
} for(int i=;i<=n;i++) printf("%.3lf\n",im[i]); return ;
}
洛谷——P2047 [NOI2007]社交网络的更多相关文章
- 洛谷 P2047 [NOI2007]社交网络 解题报告
P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ...
- 洛谷P2047 [NOI2007]社交网络 [图论,最短路计数]
题目传送门 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...
- BZOJ1491 洛谷2047 NOI2007 社交网络
Description: 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我 们 ...
- 洛谷P2047||bzoj1491 [NOI2007]社交网络
https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...
- P2047 [NOI2007]社交网络(洛谷)
题目描述 在社交网络 ( Social Network ) 的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题:在一个社交圈子里有 nn 个人,人与人之间有不同程度的关系.我们将这 ...
- 洛谷—— P2047 社交网络
P2047 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...
- 洛谷 P4027 [NOI2007]货币兑换 解题报告
P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...
- 洛谷P4027 [NOI2007]货币兑换
P4027 [NOI2007]货币兑换 算法:dp+斜率优化 题面十分冗长,题意大概是有一种金券每天价值会有变化,你可以在某些时间点买入或卖出所有的金券,问最大收益 根据题意,很容易列出朴素的状态转移 ...
- 洛谷P4027 [NOI2007]货币兑换(dp 斜率优化 cdq 二分)
题意 题目链接 Sol 解题的关键是看到题目里的提示... 设\(f[i]\)表示到第\(i\)天所持有软妹币的最大数量,显然答案为\(max_{i = 1}^n f[i]\) 转移为\(f_i = ...
随机推荐
- FreeMarker:模板开发指南
ylbtech-FreeMarker:模板开发指南 1.返回顶部 1. Section Contents 入门 模板 + 数据模型 = 输出 数据模型一览 模板一览 数值,类型 基本内容 类型 模板 ...
- gerrit下载
http://central.maven.org/maven2/com/google/gerrit/gerrit-war/2.11.4/
- CentOS下实现Flask + Virtualenv + uWSGI + Nginx部署
一.项目简介 在本文中,将一步一步搭建一个简单的Flask + Virtualenv + uWSGI + Nginx 架构的Web服务,可以作为新手的学习也可作为记录备忘. 如果你安装好了环境并有一定 ...
- 佛祖保佑 永无bug 代码注释
// // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...
- J20170528-ts
断片 片断 くどい 啰嗦 アノテーション 注释 annotation
- bzoj 1689: [Usaco2005 Open] Muddy roads 泥泞的路【贪心】
按左端点排序,贪心的选即可 #include<iostream> #include<cstdio> #include<algorithm> using namesp ...
- 用 python 写一个模拟玩家移动的示例
实例:二维矢量模拟玩家移动 在游戏中,一般使用二维矢量保存玩家的位置,使用矢量计算可以计算出玩家移动的位置,下面的 demo 中,首先实现二维矢量对象,接着构造玩家对象,最后使用矢量对象和玩家对象共同 ...
- JS制作一个创意数字时钟
通过js代码制作一个创意数字时钟 通过JS代码实现创意数字时钟效果如下:由数字化的卡通形象图片取代常规的数字显示当前实时北京时间.具体效果示例: 核心重点: (1)Date方法的初步了解 (2)构建模 ...
- 第四代增强 源代码增强(ABAP Source Code Enhancements)
显式代码增强的创建 se38打开你要增强的程序 进入编辑状态 在菜单栏选择: Edit->Enhancement Opreations->Create option. 此时弹出Create ...
- PWA技术深入学习
PWA技术 PWA全称Progressive Web App,即渐进式WEB应用. 解决的问题 实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能 可以添加至主屏幕,点击主屏幕图标可以实 ...