最小费用最大流-poj-2135

简介: Farm Tour   Description When FJ's friends visit him on the farm, he likes to show them around. His farm comprises N (1 <= N <= 1000) fields numbered 1..N, the first of which contains his 

Farm Tour

 

Description

When FJ's friends visit him on the farm, he likes to show them around. His farm comprises N (1 <= N <= 1000) fields numbered 1..N, the first of which contains his house and the Nth of which contains the big barn. A total M (1 <= M <= 10000) paths that connect the fields in various ways. Each path connects two different fields and has a nonzero length smaller than 35,000. 

To show off his farm in the best way, he walks a tour that starts at his house, potentially travels through some fields, and ends at the barn. Later, he returns (potentially through some fields) back to his house again. 

He wants his tour to be as short as possible, however he doesn't want to walk on any given path more than once. Calculate the shortest tour possible. FJ is sure that some tour exists for any given farm.

Input

* Line 1: Two space-separated integers: N and M. 

* Lines 2..M+1: Three space-separated integers that define a path: The starting field, the end field, and the path's length. 

Output

A single line containing the length of the shortest tour. 

Sample Input

4 5

1 2 1

2 3 1

3 4 1

1 3 2

2 4 2

Sample Output

6

Source

USACO 2003 February Green

微笑大意:小明喜欢带他的朋友们逛自己的农场。农场有n块地,屋舍位于1号,谷仓位于n号。有m条路连接这些地,路是无向的,每条路长度已知。他想设计一条线路,从1出发,到n,再回到1,且同一条路不走两遍。问最短的行程是多少。

分析:可建模为最小费用最大流。从1出发,到n,再回到1,相当于找到两条从1n的路径且二者不能有交集。

对于每条路,费用为长度,容量为1,这样就限制了只能走一次。新建一个顶点连向1,费用为0,容量为2.,作为等价源点。同理再建一个等价汇点。

因为重边的存在,图的存储结构为邻接表而非邻接矩阵。

注意:不能单纯的找两次最短路,反例见下图:

 

代码:spfa,还不太懂 ,先贴上

目录
相关文章
|
Nacos 流计算
flink动态更新作业
flink动态更新作业
|
9月前
|
Dart 前端开发 容器
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
293 18
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
8月前
|
测试技术 API 开发者
通义千问Qwen2.5-Max登上大模型盲测榜单全球前十,数学及编程能力夺冠
通义千问Qwen2.5-Max登上大模型盲测榜单全球前十,数学及编程能力夺冠
|
11月前
|
人工智能 自然语言处理 API
构建ChatPDF AI助手
本项目利用通义千问Qwen技术构建了一个ChatPDF AI助手,用户可上传PDF文件并基于文件内容进行对话。项目采用Python及多个库实现,包括Streamlit、OpenAI API、Transformers、Tiktoken等,支持高效、可定制的多语言对话,具备上下文理解能力和成本效益。示例代码展示了从环境配置到功能实现的完整流程,适合开发者快速上手。
|
Android开发 芯片 SoC
全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法
本文介绍了全志H713/H618方案中调焦电机(相励磁法步进电机)的驱动原理、适配方法,并通过DTS配置和驱动实现代码,详细说明了如何控制步进电机的正反转和步数,以及如何进行测试。
625 1
全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法
|
数据采集 监控 数据安全/隐私保护
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
在Selenium Web数据采集时,日志管理至关重要。通过调整`–log-level`参数可优化日志详细度,如设置为`INFO`记录一般操作信息。结合代理IP、Cookie及user-agent配置,不仅能提高采集成功率,还能规避反爬机制。合理选择日志级别有助于调试与性能平衡,在复杂的数据采集任务中保持程序稳定与可控。
386 1
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
|
算法 搜索推荐 小程序
智慧医院导航系统,技术引领就医流程优化
【摘要】智慧医院导航系统解决患者寻路难题,提高就医效率。政府政策支持导航服务纳入智慧医院标准,系统包括来院规划、院内精准定位、AR实景导航和全程导诊功能,减少患者等待时间,减轻导医台压力,促进医院信息化建设。
433 2
智慧医院导航系统,技术引领就医流程优化
|
传感器 编解码 vr&ar
Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用
Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用
4689 0
|
机器学习/深度学习 人工智能 算法
【人工智能】人工智能与传统美工结合,AI美工的详细解析
AI美工是一个结合了人工智能技术与美工设计的岗位,它利用AI工具和技术来辅助或完成美工设计的各项工作。以下是对AI美工的详细解析
731 2