Codevs 1021 玛丽卡

LabVIEW面向对象编程:操作者框架入门实战 本文是LabVIEW面向对象编程中操作者框架的入门实战指南。针对传统“面条式代码”在复杂项目中的维护难题,文章通过创建操作者、定义消息与处理函数、在主VI中调用等步骤,详细演示了如何利用操作者框架构建模块化、易扩展的应用程序架构,有效管理并行任务。 阅读详情

Codevs 1021 玛丽卡

题目地址:http://codevs.cn/problem/1021/
题目描述 Description

麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。
因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。
在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。
麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的城市都能到达麦克所在的城市。
玛丽卡将只从不堵车的路上通过,并且她将按最短路线行车。麦克希望知道在最糟糕的情况下玛丽卡到达他所在的城市需要多长时间,这样他就能保证他的女朋友离开该城市足够远编写程序,帮助麦克找出玛丽卡按最短路线通过不堵车道路到达他所在城市所需的最长时间(用分钟表示)。

输入描述 Input Description

第一行有两个用空格隔开的数 N 和M,分别表示城市的数量以及城市间道路的数量。 1≤N≤1000 , 1≤M≤N∗(N−1)/2 。城市用数字 1 至 N标识,麦克在城市 1 中,玛丽卡在城市 N 中。
接下来的M行中每行包含三个用空格隔开的数 A ,B和 V 。其中1≤A, B≤N , 1≤V≤1000 。这些数字表示在 A 和城市B中间有一条双行道,并且在 V 分钟内是就能通过。

输出描述 Output Description

输出文件的第一行中写出用分钟表示的最长时间,在这段时间中,无论哪条路在堵车,玛丽卡应该能够到达麦克处,如果少于这个时间的话,则必定存在一条路,该条路一旦堵车,玛丽卡就不能够赶到麦克处。

样例输入 Sample Input

5 7
1 2 8
1 4 10
2 3 9
2 4 10
2 5 1
3 4 7
3 5 10

样例输出 Sample Output

27
  • 这道题先跑一遍SPFA,找出 点1 到 点N 最短路的路径,然后枚举这条路径上的所有边,依次将它们的权值赋为 +∞ 然后跑一遍SPFA。答案就是 Max(disN) 了。

    • 因为如果堵车那条路不在 点1 到 点N 最短路的路径 上时,最小时间应该就是 点1 到 点N 的距离。
    • #include <cstdio>
      #include <deque>
      #define INF 1000000007
      int n, m;
      int hu[1005], hv[1005], f[1005];
      bool vis[1005];
      struct edge_type
      {
          int u, v, w, nu, nv;
      };
      edge_type edge[1000005];
      int dis[1005];
      std::deque<int> q;
      int main()
      {
          int x, y, z;
          scanf("%d%d", &n, &m);
          for (int i = 1; i <= m; ++i)
          {
              scanf("%d%d%d", &x, &y, &z);
              edge[i].u = x;
              edge[i].v = y;
              edge[i].w = z;
              edge[i].nu = hu[x];
              edge[i].nv = hv[y];
              hu[x] = i;
              hv[y] = i;
          }
          int tmp, now, p, ans = 0, ttmp, ei;
              q.clear();
              for (int i = 1; i <= n; ++i)
                  dis[i] = INF;
              dis[1] = 0;
              f[1] = 0;
              vis[1] = true;
              q.push_back(1);
              while (!q.empty())
              {
                  now = q.front();
                  q.pop_front();
                  vis[now] = false;
                  p = hu[now];
                  while (p)
                  {
                      if (dis[edge[p].v] > dis[now] + edge[p].w)
                      {
                          dis[edge[p].v] = dis[now] + edge[p].w;
                          f[edge[p].v] = p;
                          if (!vis[edge[p].v])
                          {
                              q.push_back(edge[p].v);
                              vis[edge[p].v] = true;
                          }
                      }
                      p = edge[p].nu;
                  }
                  p = hv[now];
                  while (p)
                  {
                      if (dis[edge[p].u] > dis[now] + edge[p].w)
                      {
                          dis[edge[p].u] = dis[now] + edge[p].w;
                          f[edge[p].u] = p;
                          if (!vis[edge[p].u])
                          {
                              q.push_back(edge[p].u);
                              vis[edge[p].u] = true;
                          }
                      }
                      p = edge[p].nv;
                  }
              }
          ttmp = n;
          ei = f[n];
          while(ei)
          {
              tmp = edge[ei].w;
              edge[ei].w = INF;
              q.clear();
              for (int i = 1; i <= n; ++i)
                  dis[i] = INF;
              dis[1] = 0;
              f[1] = 0;
              vis[1] = true;
              q.push_back(1);
              while (!q.empty())
              {
                  now = q.front();
                  q.pop_front();
                  vis[now] = false;
                  p = hu[now];
                  while (p)
                  {
                      if (dis[edge[p].v] > dis[now] + edge[p].w)
                      {
                          dis[edge[p].v] = dis[now] + edge[p].w;
                          f[edge[p].v] = p;
                          if (!vis[edge[p].v])
                          {
                              q.push_back(edge[p].v);
                              vis[edge[p].v] = true;
                          }
                      }
                      p = edge[p].nu;
                  }
                  p = hv[now];
                  while (p)
                  {
                      if (dis[edge[p].u] > dis[now] + edge[p].w)
                      {
                          dis[edge[p].u] = dis[now] + edge[p].w;
                          f[edge[p].u] = p;
                          if (!vis[edge[p].u])
                          {
                              q.push_back(edge[p].u);
                              vis[edge[p].u] = true;
                          }
                      }
                      p = edge[p].nv;
                  }
              }
              if (ans < dis[n])
                  ans = dis[n];
              edge[ei].w = tmp;
              ttmp = edge[ei].u ^ edge[ei].v ^ ttmp;
              ei = f[ttmp];
          }
          printf("%d", ans);
      }
如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误 当我用CL_HTTP_CLIENT往一个外网的url发请求时,遇到错误:ICM_HTTP_SSL_PEER_CERT_UNTRUSTED 错误是从这段ABAP代码里抛出来的: CALL METHOD lo_http_client-&gt;get_last_error IMPORTING code = lv_sysubrc message = ev_error_message. "BREAK-... 阅读详情

相关推荐

《统计学习方法》——李航 学习大纲

最近在学习李航写的统计学习方法概论, 每一章都用xmind理清了思路,括号里是书里的公式,第一次写博文,敬请指教~~~~ 第一章 统计学习方法论 第二章 感知机 每个方法其实只需要着重掌握三要素和输入输出就可以了,主要看模型、策略和算法。 感知机主要是二类分类的线性分类模型。 看到后面会注意感知机和支持向量机的区别。 第三章 k近

wjy619251334的博客 1万+

【codevs1021】玛丽卡,以前屯着的最短路

传送门 写在前面:以前屯着的一个最短路,感觉有点恶心o_O 思路:最初用的堆优化dijskra+邻接矩阵,结果T了3组,就放在那里了。现在捡起来用了SPFA+邻接表枚举所有边,T了2组,然后想到先求出最短路,枚举最短路径上的边就可以了,但是调了半天都不对,最后发现是循环变量名打错了…… 代码:#include<bits/stdc++.h> using namespace std; int to

xiaoyimi的博客 1243

Impala>Impala安装部署

文章目录1.安装前提2.下载安装包、依赖包3.虚拟机新增磁盘(可选)4.配置本地yum源5.安装Impala6.修改Hadoop、Hive配置7.修改impala配置8.启动、关闭impala服务 1.安装前提 集群提前安装好hadoop,hive。 hive安装包scp在所有需要安装impala的节点上,因为impala需要引用hive的依赖包。 hadoop框架需要支持C程序访问接口,查看下...

qq_44509920的博客 838

1021 玛丽卡 - Wikioi

题目描述 Description麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。 麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的城市都能到达麦克所在...

weixin_30305735的博客 214

STM32踩坑--NoST-LINK detected

这里出现的NoST-LINK detected是没有扫描到端口 在我使用一段Fly-MCU后,有一天突然发现出现如上错误,再检查的过程中检查以下几点 1.STM32 魔术棒的设置 1.1Debug设置 1.2 utilities 设置没有问题,与原来一样又看了下端口——在设备管理器中;也没有问题 ...

qq_53002477的博客 2万+

ANSYS Maxwell:创建即用型 3D 轴向磁通电机模型

Magnet Length” 是磁体的径向长度。“Magnet Thickness” 是磁体的轴向长度。为了对 AFM 进行更详细的分析,用户需要在 ANSYS Maxwell 中运行 3D FEA 分析。对于 2D 模型,它们类似于 MotorCAD 中的模型,后者对等效的直线电机进行建模。单击“确定”后,将创建一个 3D Maxwell 模型。“长度”是转子铁的轴向长度。然后需要定义定子的“磁芯”尺寸和材料。“长度”是定子铁芯的轴向长度。“转子”# 的极数必须与“定子”中定义的磁极相同。

jkh920184196的博客 1930

CodeVS1021 玛丽卡 解题报告

1021 玛丽卡 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。麦克在车中无意中听到有一条路...

Western_Street的博客 530

YOLO11优化:特征融合 | 金字塔稀疏 Transformer(PST)——一个轻量级、即插即用的模块 | 25年7月最新成果

我们提出金字塔稀疏 Transformer(PST)——一个轻量级、即插即用的模块,通过由粗到细的 token 选择机制和共享注意力参数,在大幅降低计算量的同时保留空间细节。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1062

Codevs1021玛丽卡题解

http://codevs.cn/problem/1021/题目大意 在一张无向图中求删去一条边后的从点1到点n的最短路的最大值。 点数≤\le1000,边数≤106\le10^6。 题解 一开始的思路是枚举所有边,然后分别跑最短路,然后妥妥地T。 先考虑不删边的情况,那么可以跑一次最短路。(众:废话!) 然而我们的目的是把这一条最短路记录下来。实际上,要删的边都在最短路上。(否则删了一条

t14t41t的专栏 1221

RK3568平台(内存篇)DDR定频修改

如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。

weixin_49303682的博客 1621

在群辉(NAS)中安装虚拟机套件(Virtual Machine Manager)

一、在群辉中下载虚拟机套件Virtual Machine Manager ①启用Open vSwitch(网络-->管理--启用Open vSwitch) ②打开“套件中心” ③查找到Virtual Machine Manager套件点击“安装套件” 二、安装虚拟机套件(Virtual Machine Manager) ①打开虚拟机套件运行设置向导 ②选择存储空间...

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

codevs 1021 玛丽卡

题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。 麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所...

dataxiang6224的博客 108

RTT Studio和Cubemx联合开发

1. RTT studio创建工程 创建工程 ## 创建完成以后的目录结构 2. 配置CubuMx 双击cubumx的图标打开CubeMx 配置时钟 生成代码 构建后的代码结构 编译代码满屏错误:不要慌 3. 新增脚本 新建scons脚本文件 SConscript 脚本内容如下 import os from building import * cwd = GetCurrentDir() src = Glob('*.c') # add cubemx drivers src = Split('''

Car12 1565

【CODEVS 1021】玛丽卡 SPFA+枚举

好久没有写过解题报告了,准确的说是好久没有写过代码了。作为一只OI届的咸鱼,回去搞文化课也仍然是一只咸鱼。期末考炸了,写代码的能力也一直下降。。。。现在还是找出时间写一下代码,为NOIP2016做准备。有时间要多写写代码。 CODEVS— 1021:http://codevs.cn/problem/1021/ 题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。

Qantun_Mechanics的博客 1489

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

codevs 1021 玛丽卡(spfa)

题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。     因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。     在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。     麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的

xuzc1999的博客 687

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

洛谷P1186 CodeVS1021 玛丽卡

Description: 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。 麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的城市都能到达麦克所在的城市...

afhvqwzk819746的博客 174

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【codevs 1021】玛丽卡

题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条路。无论哪一条路正在维修,从玛丽卡所在的城市都能到达麦克所在的城市。玛丽卡将只从不

LOI_Sherlock 289

玛丽卡 (codevs p1021;洛谷p1186)

玛丽卡堆优化Dijkstra spfa(始终一个点TLE 希望给予优化)题目描述麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。 麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底

Starlight 1684

codevs 1021 玛丽卡 解题报告

玛丽卡

Hawo11的博客 709
上一篇: Python - KMP算法
下一篇: KMP快速字符串匹配
MagHSK
博客等级 码龄15年 8粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值