传送门

最短路计数问题。因为数据量非常小($N \leq 100$),所以Floyd随便搞搞就行了。

$f[i][j]$表示路径长度,$g[i][j]$表示最短路方案数。

先跑一遍裸的Floyd,然后利用乘法原理统计$g[i][j]$即可。

$g[i][j]=\sum g[i][k] \times g[k][j]$

//BZOJ 1491
//by Cydiater
//2016.10.27
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <bitset>
#include <iomanip>
using namespace std;
#define ll long long
#define up(i,j,n)		for(int i=j;i<=n;i++)
#define down(i,j,n)		for(int i=j;i>=n;i--)
#define cmax(a,b) a=max(a,b)
#define cmin(a,b) a=min(a,b)
#define db double
const ll MAXN=105;
const ll oo=1LL<<60;
inline ll read(){
	char ch=getchar();ll x=0,f=1;
	while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
ll N,M,f[MAXN][MAXN],g[MAXN][MAXN],len=0;
db ans[MAXN];
struct edge{
	ll x,y,v;
}e[MAXN*MAXN];
namespace solution{
	void init(){
		N=read();M=read();
		up(i,1,N)up(j,1,N)f[i][j]=oo;
		up(i,1,N)f[i][i]=0;
		memset(g,0,sizeof(g));
		up(i,1,M){
			ll x=read(),y=read(),v=read();
			f[x][y]=f[y][x]=v;
			e[++len]=(edge){x,y,v};
		}
	}
	void slove(){
		up(k,1,N)up(i,1,N)up(j,1,N)cmin(f[i][j],f[i][k]+f[k][j]);
		up(i,1,len){
			ll x=e[i].x,y=e[i].y,v=e[i].v;
			if(f[x][y]==v)g[x][y]=g[y][x]=1;
		}
		up(k,1,N)up(i,1,N)up(j,1,N)if(f[i][j]==f[i][k]+f[k][j]&&i!=k&&j!=k){
			g[i][j]+=g[i][k]*g[k][j];
			//cout<<i<<' '<<k<<' '<<j<<' '<<g[i][k]<<' '<<g[k][j]<<' '<<g[i][j]<<endl;
		}
		up(k,1,N)up(i,1,N)up(j,1,N)if(f[i][j]==f[i][k]+f[k][j]&&i!=k&&k!=j&&i!=j)
			ans[k]+=(db)(g[i][k]*g[k][j])/(db)(g[i][j]);
	}
	void output(){
		up(i,1,N)printf("%.3lf\n",ans[i]);
	}
}
int main(){
	//freopen("input.in","r",stdin);
	using namespace solution;
	init();
	slove();
	output();
	return 0;
}

BZOJ1491: [NOI2007]社交网络的更多相关文章

  1. [BZOJ1491][NOI2007]社交网络 floyd

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2196  Solved: 1170[Submit][Status ...

  2. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2343  Solved: 1266[Submit][Status][Discuss] Descripti ...

  3. BZOJ1491 [NOI2007]社交网络 【floyd】

    题目 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这个关系网络对应到一 ...

  4. 【Floyd】BZOJ1491: [NOI2007]社交网络

    Description   Solution n<=100自然联想Floyd 设两个数组d[n][n]存最短距离,t[n][n]存最短路径条数 更新d的时候顺便更新t,乘法原理 if(d[i][ ...

  5. 洛谷P2047||bzoj1491 [NOI2007]社交网络

    https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...

  6. BZOJ1491 [NOI2007]社交网络[最短路计数]

    $n$非常的小,结合题目计算式可以想到$O(n^3)$暴枚$s,t,v$,看$v$在不在$s\to t$最短路上($dis_{s,v}+dis_{v,t}=dis_{s,v}$是$v$在两点最短路上的 ...

  7. 【BZOJ1491】[NOI2007]社交网络 Floyd

    [BZOJ1491][NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子 ...

  8. BZOJ1491:1491: [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2204  Solved: 1175[Submit][Status ...

  9. BZOJ 1491 [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1159  Solved: 660[Submit][Status] ...

随机推荐

  1. ORACLE数据库的导入及导出

    今天在客户这里导入oracle数据库,第一次导入oracle数据库,在这里记录一下,以后备用. 一.使用PLSQL导出导入ORACLE数据库: 1.打开plsql-->工具---->导出用 ...

  2. SQL Server自动化运维系列——监控性能指标脚本(Power Shell)

    需求描述 一般在生产环境中,有时候需要自动的检测指标值状态,如果发生异常,需要提前预警的,比如发邮件告知,本篇就介绍如果通过Power shell实现状态值监控 监控值范围 根据经验,作为DBA一般需 ...

  3. PHP的openssl加密扩展使用小结

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  4. Python字典的基本组成以及用法

    #!/usr/bin/env python# -*- coding:utf-8 -*-"""老规矩以下方法环境2.7.x,请3.x以上版本的朋友记得格式print(输出内 ...

  5. apache ab测试命令详解

    这篇文章主要介绍了apache性能测试工具ab使用详解,需要的朋友可以参考下   网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种 ...

  6. ubuntu16.04连接android手机蓝牙共享网络热点

    最近的想要用android手机蓝牙共享wifi网络给ubuntu16.04系统用,查了好多资料,发现网上很少有有用的.自己实践后分享如下. 第一步:手机与电脑配对:         该步骤比较简单,网 ...

  7. WPF Telerik TreeListView样式设计

    Telerik控件 TreeListView 修改其中样式 1.添加TreeListView控件 <telerik:RadTreeView x:Name="ObjecTreeView& ...

  8. Service 广播 到Fragment

    //Fragment public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Sys ...

  9. COGS1008. 贪婪大陆[树状数组 模型转换]

    1008. 贪婪大陆 ★★   输入文件:greedisland.in   输出文件:greedisland.out   简单对比时间限制:1 s   内存限制:128 MB 试题四:贪婪大陆  [题 ...

  10. NYOJ 762

    容斥原理 http://blog.csdn.net/shiren_bod/article/details/5787722