BZOJ-1491-社交网络
题目链接:https://vjudge.net/problem/HYSBZ-1491
题目大意:中文题目,题意见题目
题目分析:由于数据量很小,可以考虑进行Floyd算法。
第一次进行Floyd算法,算出两点之间的最短路径,另外记录下这两点之间有多长条最短路走法。
第二场进行类似Floyd算法的方法,计算经过k点,是否可以走出最短路,如果可以的话,进行计算。
注意在两次统计计算的过程中,要用组合的方法,即num[i][j]=num[i][k]*num[k][j];
给出代码:
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #include <string> using namespace std; int n,m; +][+]; +][+]; int inf=0x3f3f3f; ]; int main() { cin>>n>>m; memset(node,inf,sizeof(node)); //memset(node1,0,sizeof(node1)); // memset(mark,0,sizeof(mark)); ; i<m; i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); node[a][b]=c; node[b][a]=c; node1[a][b]=; node1[b][a]=; } // for(int i=1; i<=n; i++) // node[i][i]=0; /* for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { cout<<node[i][j]<<" "; } cout<<endl; } cout<<endl;*/ ; k<=n; k++) { ; i<=n; i++) { ; j<=n; j++) { if(k!=i&&k!=j&&i!=j) { if(node[i][j]==node[i][k]+node[k][j]) node1[i][j]=node1[i][j]+(node1[i][k]*node1[k][j]); else if(node[i][j]>node[i][k]+node[k][j]) { node1[i][j]=node1[i][k]*node1[k][j]; node[i][j]=node[i][k]+node[k][j]; } } // node[i][j]= } } } /* for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { cout<<node[i][j]<<" "; } cout<<endl; }*/ ; k<=n; k++) { ; i<=n; i++) { ; j<=n; j++) { ) { mark[k]+=((node1[i][k]*node1[k][j])/node1[i][j]); // cout<<mark[k]<<" "<<k<<" "<<i<<" "<<j<<endl; // cout<<node1[i][k]<<" "<<node1[k][j]<<endl; } } } } ; i<=n; i++) printf("%.3f\n",mark[i]); ; }
BZOJ-1491-社交网络的更多相关文章
- BZOJ 1491 社交网络 Floyd 最短路的数目
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题目大意: 见链接 思路: 直接用floyd算法求最短路,同时更新最短路的数目即 ...
- BZOJ 1491 社交网络(最短路)
对于这道题,如果我们能求出s到t的最短路径数目和s由v到t的最短路径数目,剩下的很好求了. 令dis[i][j]表示i到j的最短路径,dp[i][j]表示i到j的最短路径条数,如果dis[s][v]+ ...
- BZOJ 1491 [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1159 Solved: 660[Submit][Status] ...
- BZOJ 1491: [NOI2007]社交网络( floyd )
floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...
- 【BZOJ 1491】 [NOI2007]社交网络
Description Input Output 输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度. Sample Input 4 4 1 2 ...
- BZOJ 1491: [NOI2007]社交网络(Floyd+暴力乱搞)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理 ...
- bzoj 1491 floyd
我们用w[i][j]表示i到j的最短路的数量,dis[i][j]表示i到j的最短路,那么我们在floyd的时候,如果dis[i][k]+dis[k][j]==dis[i][j],根据乘法原理我们就w[ ...
- bzoj 1491
思路:先求出每两点之间的最短路,建出n个最短路径图,然后枚举起点终点和中间点,计算条数用到拓扑图dp... 看别人的方法很巧妙地用floyd在计算最短路的时候就可以直接计算条数啦... #includ ...
- BZOJ1491: [NOI2007]社交网络
传送门 最短路计数问题.因为数据量非常小($N \leq 100$),所以Floyd随便搞搞就行了. $f[i][j]$表示路径长度,$g[i][j]$表示最短路方案数. 先跑一遍裸的Floyd,然后 ...
- 【BZOJ】1491: [NOI2007]社交网络(floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1491 囧囧囧...................... 囧1:虽然自己想到做法了,但是操作的时候, ...
随机推荐
- JQuery与js具体使用的区别(不全,初学)
jQuery能大大简化Javascript程序的编写 要使用jQuery,首先要在HTML代码最前面加上对jQuery库的引用,比如: <script language="javasc ...
- 用javascript实现java的Map
function Map(){ var obj={}; //空的容器 //put方法 this.put=function(key,value){ obj[key]=value; //把键值绑定到obj ...
- document事件及例子
一.关于鼠标事件:onclick:鼠标单击触发 ondbclick:鼠标双击触发 onmouseover:鼠标移上触发 onmouseout:鼠标离开触发 onmousemove:鼠标移动触发 二.关 ...
- VisualSVN 5.1.7破译License Key
前面手敲一些简要的软件说明:visualSVN server大家都不陌生,服务器上的版本控制系统,一般配套Tortoisesvn(小乌龟)使用.本次介绍的这个visualsvn属于VisualStud ...
- 由SpringMVC中RequetContextListener说起
零.引言 RequetContextListener从名字结尾Listener来看就知道属于监听器. 所谓监听器就是监听某种动作,在其开始(初始化)和结束(销毁)的时候进行某些操作. 由此可以猜测:该 ...
- Java 变量类型
局部变量 成员变量 类变量 Java局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局 ...
- js禁止选中(网页复制)
document.onselectstart=new Function("event.returnValue=false");//禁止选中(无法复制) document.oncon ...
- Http批量异步发送和数据保存
先说需求. 有个服务程序定时扫描指定文件夹下一个所有文件,文件包含了多个用户(客户)信息及对应的http发送地址和发送数据.现在该服务程序需要提取这些用户信息,然后批量进行发送:发送完后需要将http ...
- 你猜这个题输出啥?-- java基础概念
最近在看java编程思想,大部分内容都觉得没啥意思,但是突然看到一个基本概念(似乎都忘了),于是写了测试题,我想这辈子也不会忘这个概念了. 题目如下: public class Suber exten ...
- 从源码的角度看Activity是如何启动的
欢迎访问我的个人博客,原文链接:http://wensibo.top/2017/07/03/Binder/ ,未经允许不得转载! 大家好,今天想与大家一起分享的是Activity.我们平时接触的最多的 ...