热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ZOJ3946HighwayProject(有条件的最短路)

题目链接:http:acm.zju.edu.cnonlinejudgeshowProblem.do?problemCode3946题意:Marjar帝

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3946

题意:Marjar帝国的皇帝爱德华想要建造一些双向高速公路,以便尽可能快地从首都到达其他城市。 因此,他提出了高速公路项目。Marjar帝国有N个城市(包括首都),从0到N  -  1(首都是0)的索引,并且可以建造M条高速公路。 建设第i高速公路需要Ci美元。 在i-th高速公路上,Xi到Yi需要Di分钟。

爱德华希望找到一个建筑计划,从首都到达其他城市所需的总时间最短,即从首都到城市i所需的最短时间总和(1≤i≤N)。 在所有可行的计划中,爱德华想要以最低的成本选择计划。 请帮助他完成这项任务。

思路:这题是在路径最短的境况下选择最少的花费,所以需要在松弛的时候对花费进行更新操作,假如说三个点被线连着,第一个点也连着第三个点,因为dij对边进行松弛的时候,总是选择在dis数组里面离源点最近的而且没松弛过的,所以从最短路径来说,这个点肯定是最短路径里的点了,但是如果加了花费这个条件的话,所以当我们判断如果dis[1-3]==dis[1-2-3]的话,我们还要判断它们的花费需不需要更新。注意更新的时候花费不要累加,因为路只要修一遍。

#include
using namespace std;
#define pii pair
#define ll long long
const int N = 1e5+7;
vector E[N], Ep[N];
int vis[N], n, m;
ll d[N], p[N];
void init()
{memset(d, 0x3f, sizeof(d));memset(vis, 0, sizeof(vis));for(int i = 0; i }
void Dijkstra()
{priority_queue Q;Q.push({-d[0], 0});while(!Q.empty()){int now = Q.top().second;Q.pop();if(vis[now]) continue;vis[now] = 1;for(int i = 0; i d[now] + E[now][i].second){d[v] = d[now] + E[now][i].second;p[v] = Ep[now][i].second;Q.push({-d[v], v});}else if(d[v] == d[now] + E[now][i].second && p[v] > Ep[now][i].second)p[v] = Ep[now][i].second;}}
}
int main()
{int t;scanf("%d", &t);while(t--){init();scanf("%d%d", &n, &m);for(int i = 0; i }


 


推荐阅读
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
author-avatar
暗影HK4164286
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有