hdu 4650 Minimum Average Weight Path(最短路,5级)

全局最小割 一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集当然就权和最小的割集。 可以用最小切割最大流定理: 1.min=MAXINT,确定一个源点 2.枚举汇点 3.计算最大流,并确定当前源汇的最小割集,若比min小更新min 4.转到2直到枚举完毕 5.min即为所求输出min     不难看出复杂度很高:枚举汇点要O(n),最 阅读详情

Minimum Average Weight Path

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 94    Accepted Submission(s): 46


Problem Description

In mathematics, a graph is a representation of a set of objects where some pairs of the objects are connected by links. The interconnected objects are represented by mathematical abstractions called vertices, and the links that connect some pairs of vertices are called edges. A path in a graph is a sequence of vertices, and for any 2 adjacent u, v, there is a edge from u to v in graph. A path contains at least one edge. In the graph in Sample 2, {3, 3, 2, 2} can form a path from 3 to 2.

One of the common problem is to find the shortest path between two certain vertices, or all of them. They've been well studied as the single source shortest path problem (SSSP) and the all pairs shortest paths problem (APSP).

In this problem, we'll provide you a derivation analogous to APSP. You've been given a directed graph with positive or negative edge weights. We define the average weight of a path, as the sum of the edge weights divide the edges number of path. Now you need to find the minimum average weight between all pairs of vertices (APMAWP).

 


 

Input

Muiltcases. The first line contains two integer n, m, (1 ≤ n ≤ 102, 1 ≤ m ≤ 104 ) the number of the vertices and the number of the edges.

The next m lines, each line contains three intergers u, v, w, representing a directed edge from u to v with weight w. (|w| ≤ 103)

There is no multi-edge. It can contain self-loops.

 


 

Output

A n × n matrix representing the APMAWP. The j's element of the i's row represents the minimum average weight of all the paths from vertex i to vertex j. If no such path exists, you need to output "NO" instead (DO NOT output quote please). For each real number, you need to keep exactly 3 digits after digit point.

 


 

Sample Input

4 4
2 1 2
1 3 -8
2 4 -6
4 3 1
5 8
3 3 735
2 1 946
4 2 276
2 2 -990
3 2 -162
4 4 -18
3 5 783
5 5 -156

 


 

Sample Output

NO NO -8.000 NO
2.000 NO -3.000 -6.000
NO NO NO NO
NO NO 1.000 NO
NO NO NO NO NO
-990.000 -990.000 NO NO NO
-990.000 -990.000 735.000 NO -156.000
-990.000 -990.000 NO -18.000 NO
NO NO NO NO -156.000

 


 

Source

2013 Multi-University Training Contest 5

 


 

Recommend

zhuyuanchen52

 

思路:全源最短路,求平均边权最小,这个还是比较简单的,当时怎么没去看这题呢?

#include<iostream>
#include<cstring>
#include<cstdio>
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define clr(f,z) memset(f,z,sizeof(f))
using namespace std;
const int mm=103;
const int oo=0x3f3f3f;
int g[mm][mm],fg[mm][mm],t[mm][mm];
int vis[mm][mm];//过几条边相见
double ans[mm][mm];
int n,m;
void acopy(int(*a)[mm],int(*b)[mm])
{
  FOR(i,1,n)FOR(j,1,n)a[i][j]=b[i][j];
}
void mul(int(*a)[mm],int(*b)[mm],int lol)
{ acopy(t,a);FOR(i,1,n)FOR(j,1,n)a[i][j]=oo;
  FOR(i,1,n)FOR(j,1,n)FOR(k,1,n)
  {
    if(vis[i][k]==-1||lol<vis[i][k])continue;
    if(vis[k][j]==-1||lol<vis[k][j])continue;
    a[i][j]=min(a[i][j],t[i][k]+b[k][j]);
  }
}
void debug(int(*a)[mm])
{ puts("+++++++++++++++++++++++");
  FOR(i,1,n)FOR(j,1,n)
  {
    printf("%d ",a[i][j]);
    if(j==n)puts("");
  }
  puts("+++++++++++++++++++++++++");
}
int main()
{ int a,b,c;
  while(~scanf("%d%d",&n,&m))
  {
    FOR(i,1,n)FOR(j,1,n)ans[i][j]=oo;
    clr(vis,-1);clr(g,0x3f);
    FOR(i,1,m)
    {
      scanf("%d%d%d",&a,&b,&c);
      g[a][b]=c;vis[a][b]=1;
    }
    FOR(k,1,n)FOR(i,1,n)if(vis[i][k]!=-1)
    FOR(j,1,n)if(vis[k][j]!=-1)
    {
      vis[i][j]=vis[i][j]==-1?vis[i][k]+vis[k][j]:min(vis[i][j],vis[i][k]+vis[k][j]);
    }///求出最少边相连
    acopy(fg,g);
    FOR(k,1,n){FOR(i,1,n)FOR(j,1,n)
    if(vis[i][j]!=-1&&k>=vis[i][j])///边数需要大于等相遇最小边数
     ans[i][j]=min(ans[i][j],(double)fg[i][j]/k);
     mul(fg,g,k);//debug(fg);
    }///K连边
    FOR(k,1,n)FOR(i,1,n)if(vis[i][k]!=-1)FOR(j,1,n)
    if(vis[k][j]!=-1&&vis[k][k]!=-1)
    {
      ans[i][j]=min(ans[i][j],ans[k][k]);
    }
    FOR(i,1,n)FOR(j,1,n)
    {
      if(j>1)putchar(' ');
      if(vis[i][j]==-1)printf("NO");
      else //cout<<ans[i][j];
        printf("%.3lf",ans[i][j]);
      if(j==n)printf("\n");
    }
  }
  return 0;
}


 

防止加入域主机脱离域的控制(管理员权限) 一、简介   当公司所有主机加入到域后,SA首要工作就是防止加入域的主机脱离域的控制。让我发现该工作的必要性是一程序猿,前一天刚配完禁止执行QQ、微信执行,第二天就看到那家伙在用微信聊天,肯定是用回旧的本地账号登陆了。   本人所在公司安装软件的类型繁杂,无管理员权限运行不少软件会报错,不得不授予「域账号」本地管理员权限。过大的权限带也来了一系列后果:用户可随意退出域、创建本地管理员... 阅读详情

相关推荐

网络攻防技术——MD5碰撞试验

一、题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。 c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。 d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的M

学习记录 3621

hdu 4650 Minimum Average Weight Path

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4650题目翻译:给定一个无重边的有向图,求全源最小平均权值路径。最小平均权值路径的定义是,路径总权值 / 路径上的边数最小。题目分析:利用矩阵乘法 计算出走k 步时1-n的最短路径/走过的步数k分两种情况讨论:1.这条路径上没有负环,则直接更新 与ans[i][j]/k比较

xiaotaike1的专栏 332

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记

①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。

qq_44684643的博客 2011

HDOJ 4650: Minimum Average Weight Path

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4650 题目大意: 给定一个无重边的有向图, 求全源最小平均权值路径。 最小平均权值路径的定义是,路径总权值 / 路径上的边数最小。 算法: 题目应当分为两种情况: 两点间的路径上可能存在负环,如果一条路径沿着这个负环不断走下去,那么最终的平均值一定是趋于这个负环的平均权值

frog的小池塘 1259

iOS安全攻防:从DarkSword漏洞利用链剖析到纵深防御实践

在移动安全领域,内存破坏漏洞(如堆溢出、释放后使用)是攻击者突破系统防线、实现远程代码执行和权限提升的核心技术原理。这些漏洞利用技术通过精心构造的攻击链,能够绕过沙箱、地址空间布局随机化等安全机制,最终威胁设备内核安全,其技术价值在于揭示了系统安全架构的潜在薄弱环节。在iOS应用开发与系统防护中,理解此类攻击链对于构建有效的纵深防御体系至关重要。应用场景涵盖从安全编码、网络通信加固到运行时应用程序自保护等多个层面。本文以DarkSword工具包为例,深入拆解其利用链,并分享如何通过内存安全实践、代码签名强化

weixin_30357231的博客 479

国产平替NeuroSky?实测金牛座TGAM脑电模块,从Arduino到Python的完整数据采集指南

本文详细介绍了国产金牛座TGAM脑电模块的完整使用流程,包括硬件连接、数据采集和Python分析。通过Arduino和Python的实战案例,展示了如何从脑电波传感器获取并解析专注度、放松度等数据,适用于专注力训练和脑机接口开发。

weixin_30735745的博客 576

手把手教物体检测——yolov3

目录 摘要 训练 下载算法 下载.weights结尾的预训练模型,并将weight文件转为h5文件 修改类别。 Labelme标注的数据集转为yolov3训练的数据集。 执行Kmeans.py文件计算anchors。 修改train.py文件。 摘要 YOLOv3是YOLO (You Only Look Once)系列目标检测算法中的第三版,相比之前的算法,尤其是针对小目标,精度有显著提升。在Pascal Titan X上处理608x608图像速度达到20FPS,在 COCO test-

AI浩 1894

RT-Thread Studio使用笔记(四):带片外Flash(W25Q128)的OTA(YModem)

前言 在学习OTA之前,请先参考上两篇博客写的关于SPI设备及W25Q128的使用方法,传送门: https://blog.youkuaiyun.com/tigerots/article/details/107423633 https://blog.youkuaiyun.com/tigerots/article/details/107933991 如何使用OTA 一. 制作BootLoader 打开Bootloader 在线获取地址,注册,并根据RT-thread官方文档生成BootLoader,官方文档已经写的很清楚,再此

tigerots的专栏 4008

用yolov3进行图片分类

使用yoloV3进行图片分类:一个待处理的Images文件夹,里面包含要处理的图片;一个目标文件personFile,我这里需要提取含有行人的图片;一个非目标的文件noPersonFile。实际功能是从Images一张一张的读取,使用yolo返回的结果查看该图片是否包含行人,有则把它写入personFile文件中,否则写入noPersonFile文件中,同时将该图片从Images删...

SeventhBlue 8848

做了一个3DTiles编辑器,支持3DTiles的预览和裁剪导出

3DTiles编辑器的功能极其简洁,核心就是3DTiles格式模型的预览和裁剪。为了演示方便,本文所使用的源数据为mipmap3d[1]网站所提供的无人机拍摄影像,并进行3DTiles构建。打开软件,输入的绝对路径之后,点击添加模型,就可以将模型加载进预览区。之后,点击裁剪模式按钮,默认会出现立方体裁剪框,可通过拖动句柄的方式去调整裁剪框的范围。同时,除了默认的盒体裁切模式外,还支持多边形裁切,点击多边形裁切后,可切换到顶视图,选择重绘多边形,可进行打点绘制。

兴趣使然的创作者 601

YOLO26涨点改进 | 全网独家复现、小目标检测改进篇 | TGRS 2025 | YOLO26引入MFAE-YOLO中的GFFP、FCPS 和 C3k2-FPEU创新点,涨点起飞,直接发论文

🔥本文给大家介绍在YOLO26中引入MFAE-YOLO中的 GFFP(全局特征融合处理)、FCPS(特征通道像素注意力) 和 C3k2-FPEU(特征池提取单元) 二次创新改进模块,能显著提升对小目标的检测性能。GFFP通过多尺度特征融合增强全局上下文感知能力,有效提升小目标在复杂背景下的可辨性;FCPS融合通道、像素和空间注意力机制,增强了模型对关键细节和小区域特征的关注,提升检测精度;C2F-FPEU利用多种池化方式挖掘细节特征,优化浅层特征表示能力。三者协同提升了YOLO26在小目标检测中的鲁棒性。

Ai缝合怪、助力小伙伴高效发论文 305

BGP知识点

BGP知识点

m0_70935319的博客 2633

coze 怎么读取excel文件,使用循环,数据库完成LLM问答并存储

本文介绍了如何在Coze平台实现"Excel读取+循环处理+LLM问答+数据库存储"的工作流。主要分为三个步骤:1)使用代码节点解析Excel文件为问答对数组;2)通过循环节点遍历问答对,调用LLM节点生成回答;3)利用数据库节点将问答结果存储到Coze内置数据库中。文中提供了代码示例和节点配置说明,并强调了注意事项如Excel格式要求、LLM调用频率控制等。该工作流适用于批量构建知识库问答系统并持久化存储结果。

ZhangJiqun&191cm&85kg 1788

keras导入weights方式

keras导入weights方式更多python视频教程请到菜鸟教程https://www.piaodoo.com/ keras源码engine中toplogy.py定义了加载权重的函数: load_weights(self, filepath, by_name=False) 其中默认by_name为False,这时候加载权重按照网络拓扑结构加载,适合直接使用keras中自带的网络模型,如VGG16 VGG19/resnet50等,源码描述如下: If `by_name` is False

菜鸟教程 3171

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BGP路由属性之权重weight 实验分析

BGP路由属性之权重weight cisco的私有属性 weight属性用来影响本路由器自已的选路,不能传递给任何邻居 默认值=0     如果是本地产生的路由weight值为32768  weight值越大越好   GNS3实验分析路径属性weight 查看R1的bgp database R1#show ip bgp       Network          Next ...

Mr_Bei的博客 7408

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

uva 10917 Walk Through the Forest(最短路+DP路径,4级)

Description Problem C: A Walk Through the Forest Jimmy experiences a lot of stress at work these days, especially since his accident made working difficult. To relax after a hard day, he lik

nealgavin的专栏 2130

CF-29C - Mail Stamps(DFS+离散化)

C - Mail Stamps Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 29C Description

nealgavin的专栏 1707

hdu 4756 Install Air Conditioning(MST+全边次小树,4级)

Install Air Conditioning Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 174    Accepted Submission(s): 23 Problem Description   

nealgavin的专栏 1443

UVA1416 Warfare And Logistics(LA4080)(最短路,5级)

Description The army of United Nations launched a new wave of air strikes on terrorist forces. The objective of the mission is to reduce enemy's logistical mobility. Each air strike will destro

nealgavin的专栏 1342

HDU 1068 Girls and Boys(二分图最大独立点集,3级)

Girls and Boys Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status   Appoint description:  System Crawler  (2012-10-30) Description the secon

nealgavin的专栏 1229

uva 1364 - Knights of the Round Table(点双连通分量,5级)

Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in distress, and drinking with the other knights are fun things to do. Therefore, it is not very surprising tha

nealgavin的专栏 1224
上一篇: hdu 4671 Partition(DP,整数划分,5级)
下一篇: hdu 4679 Terrorist’s destroy (DP or 树直径,4级)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值