热爱工作的蒜蒜(带限制最短路)

【计蒜客】蒜头君上班 C++ and C语言 蒜头君可以选择行走和骑车两种方式上班。但实际上,他并不清楚哪种方式更快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。给了蒜头君距离公司的距离,请问是骑车快还是走路快。... 阅读详情

众所周知,蒜蒜是一名热爱工作的好员工,他觉得时间就是金钱,做事情总是争分夺秒。

这天晚上,蒜蒜一个人去吃晚饭。不巧的是,吃完饭以后就开始下雨了,蒜蒜并没有带雨伞出来。但是蒜蒜热爱工作,工作使他快乐,他要尽快赶回去写代码。

蒜蒜的公司在中关村,中关村这边地形复杂,有很多天桥、地下通道和马路交错在一起。其中,地下通道是可以避雨的,天桥和马路都没办法避。可以把中关村抽象成为 nnn 个点的地图(顶点编号为 111 到 nnn),其中有 m1m_1m​1​​ 条地下通道,有 m2m_2m​2​​ 条马路或者天桥,其中地下通道的长度为 111。蒜蒜吃饭的地方在 111 点,公司在 nnn 点。当然,蒜蒜虽然爱工作心切,但是他更不想淋很多雨,同时也不想浪费很多时间。于是他折中了一下——在保证他回到公司所走的路程总和小于等于 LLL 的情况下,他希望淋雨的路程和尽量的少。

请你赶紧帮热爱工作的蒜蒜规划一条路径吧,不要再让他浪费时间。

输入格式

第一行输入测试组数 T(1≤T≤20)T(1 \le T \le 20)T(1≤T≤20)。

接下来 TTT 组数据。

每一组数据的第一行输入四个整数 n(2≤n≤100)n(2 \le n \le 100)n(2≤n≤100),m1(0≤m1≤50)m_1(0 \le m_1 \le 50)m​1​​(0≤m​1​​≤50),m2(0≤m2≤5000)m_2(0 \le m_2 \le 5000)m​2​​(0≤m​2​​≤5000),L(1≤L≤108)L(1 \le L \le 10^8)L(1≤L≤10​8​​)。

接下里 m1m_1m​1​​ 行,每行输入两个整数 a,b(1≤a,b≤n)a, b(1 \le a, b \le n)a,b(1≤a,b≤n),表示 aaa 和 bbb 之间有一条地下通道。

接下里 m2m_2m​2​​ 行,每行输入三个整数 u,v(1≤u,v≤n),c(1≤c≤106)u, v(1 \le u, v \le n), c(1 \le c \le 10^6)u,v(1≤u,v≤n),c(1≤c≤10​6​​),表示 uuu 和 vvv 之间有一条长度为 ccc 的马路或者天桥。

所有路径都是双向的。

输出格式

对于每组数据,如果有满足要求的路径,输出一个整数,表示淋雨的路程长度,否则输出 −1-1−1。

#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
const int inf = 0x3f3f3f3f;
int k[105][105];
int cases,n,m1,m2,l;
struct node
{
    int to;
    int w;
    node(int a,int b):to(a),w(b){}
};
int dist[105];
int dp[105];
int vis[105];
vector<node>G[105];
void dij()
{
    memset(vis,0,sizeof(vis));
    for(int i=0;i<=n;i++) dp[i] = inf,dist[i] = inf;
    queue<int>q; q.push(1); vis[1] = 1; dist[1] = 0; dp[1] = 0;
    while(!q.empty())
    {
        int u = q.front(); q.pop();
        int len = G[u].size(); vis[u] = 0;
        for(int i=0;i<len;i++)
        {
            int v = G[u][i].to;
            int w = G[u][i].w;
            if(dp[v]>dp[u] + w&&dist[u] + w<=l)
            {
                dp[v] = dp[u] + w;
                dist[v] = dist[u] + w;
                if(!vis[v]){ vis[v] = 1; q.push(v); }
            }
        }
        for(int i=1;i<=n;i++)
        {
            if(!k[u][i]) continue;
            if(dp[i]>dp[u]&&dist[u] + 1<=l)
            {
                dp[i] = dp[u];
                dist[i] = dist[u] + 1;
                if(!vis[i]){ vis[i] = 1; q.push(i); }
            }
        }
    }
    if(dist[n]<=l&&dp[n]<=l) printf("%d\n",dp[n]);
    else printf("-1\n");
}
int main()
{
    int u,v,w;
    scanf("%d",&cases);
    while(cases--)
    {
        scanf("%d%d%d%d",&n,&m1,&m2,&l);
        memset(k,0,sizeof(k));
        for(int i=0;i<=n;i++) G[i].clear();
        for(int i=0;i<m1;i++)
        {
            scanf("%d%d",&u,&v);
            k[u][v] = 1; k[v][u] = 1;
        }
        for(int i=0;i<m2;i++)
        {
            scanf("%d%d%d",&u,&v,&w);
            G[u].push_back(node(v,w));
            G[v].push_back(node(u,w));
        }
        dij();
    }
    return 0;
}







【Unity报错】Unity导入海康SDK 报错 DllNotFoundException: PlayCtrl assembly 2.尝试按网上其他的办法(包括使用depengs查看dll依赖等)1.先检查Plugins文件夹中是否存在PlayCtrl文件。3.如果网上查阅的办法都不能解决,请继续往下看。更换低版本的SDK库文件。 阅读详情

相关推荐

【QGIS】PyCharm集成pyqgis的processing工具箱:环境配置与初始化实战

本文详细介绍了如何在PyCharm中配置QGIS的Python环境并成功集成其强大的Processing工具箱。文章核心解决了独立环境下导入processing模块失败、算法无法调用等常见难题,通过手动添加插件路径和执行关键初始化步骤,实现了在PyCharm中丝滑调用QGIS地理处理算法,从而将复杂的空间分析流程自动化。

weixin_28831399的博客 391

9. dfs---蒜头君开公司(深度遍历每一种可能,寻找最少时间总和)

题目: 分析: 从第0个位置开始,深度遍历每一种可能,寻找最少的时间总和 代码: import java.util.Scanner; public class Main { /* * 思路: 测试数据 6 10 11 12 11 9 11 11 9 10 13 11 12 12 10 11 10 13 9 9 14 9 10 10 11 10 10 9 11 12 11 10 7 10 10 10 8 正常输出: 54 * */ static int n;//N个员工,每个员

sunnnnh的博客 185

倍福ADS通讯协议深度解析——从握手到数据包的完整旅程

本文以工程师视角,通过Wireshark抓包实战,深度解析了倍福ADS通讯协议的完整工作流程。从TCP三次握手建立连接,到拆解AMS/TCP信封、AMS Header地址与命令解析,再到ADS Data读写请求的载荷构成,完整呈现了一次数据通讯的“旅程”。文章重点剖析了协议包格式,并结合实际案例,提供了基于协议分析的故障排查思路,帮助开发者深入理解并精准调试工业自动化系统通讯。

weixin_29231725的博客 151

计蒜客 蒜头君开公司 dfs 暴力搜

#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<cstdlib> #include<queue> #include<cmath> #include<cctype> #include&lt...

weixin_43960370的博客 481

置换矩阵、转置矩阵以及向量空间、子空间

置换矩阵、转置矩阵以及向量空间、子空间导读置换矩阵 导读 MIT矩阵分析课程之后的的二篇笔记。

qq_44677482的博客 1673

SIwave学习记录:电热耦合仿真

SIwave电热耦合仿真

m0_68174736的博客 2336

Week11程序设计 A - 必做题11-1 计蒜客 - T1065

题目描述 蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 60 平米的房子,现在价格是 200 万。假设房子价格以每年百分之 K 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 N 万,房价 200 万) 输入格式 一行,包含两个正整数N(10≤N≤50),K(1≤K≤20),中间用单个空格隔开。 输出格式 如果在第 20 年或者之前就能买下这套房子,则输出一个整数 M,表示最早需要在第 M 年能买下;否则输出"Impos

AcceptedMaybe的博客 435

嵌入式开发避坑指南:用DWT做延时函数,这几个细节不注意代码会跑飞

本文深入探讨了在Cortex-M嵌入式开发中使用DWT实现精确延时函数的关键技巧与常见陷阱。针对DWT_CYCCNT计数器应用中的内核兼容性、溢出处理、编译器优化等五大核心问题,提供了工业级稳健解决方案,帮助开发者避免代码跑飞风险,实现微秒级高精度延时控制。

weixin_42653691的博客 160

景驰无人驾驶 1024 编程邀请赛 A.热爱工作的蒜蒜(最短路,SPFA)

描述 众所周知,蒜蒜是一名热爱工作的好员工,他觉得时间就是金钱,做事情总是争分夺秒。 这天晚上,蒜蒜一个人去吃晚饭。不巧的是,吃完饭以后就开始下雨了,蒜蒜并没有带雨伞出来。但是蒜蒜热爱工作,工作使他快乐,他要尽快赶回去写代码。 蒜蒜的公司在中关村,中关村这边地形复杂,有很多天桥、地下通道和马路交错在一起。其中,地下通道是可以避雨的,天桥和马路都没办法避。可以把中关村抽象成为

riba2534的博客 816

5g LDPC编译码-LDPC编码

本文摘要:LDPC编码是5G业务信道的核心编码技术,属于线性分组码。5G中LDPC编码分为两种基图类型(BG1和BG2),通过码块分割、CRC处理等步骤实现。编码过程主要涉及校验矩阵生成和校验位计算,其中校验矩阵采用稀疏矩阵结构。文中详细介绍了5G LDPC编码的具体实现流程,包括码块分割规则、校验位生成方法,以及两种基图(BG1和BG2)在矩阵结构和参数设置上的差异,重点阐述了通过模块化方法求解校验比特位的技术路径。

weixin_38270585的博客 1365

MATLAB - 利用非线性模型预测控制(Nonlinear MPC)来控制四旋翼飞行器

本示例展示了如何利用非线性模型预测控制(MPC)为四旋翼飞行器设计一个跟踪轨迹的控制器。

机器人控制与仿真应用 4432

计蒜客:热爱工作的蒜蒜(最短路)

题目链接热爱工作的蒜蒜Time limit:1000ms Memory limit:262144K Problem Description众所周知,蒜蒜是一名热爱工作的好员工,他觉得时间就是金钱,做事情总是争分夺秒。这天晚上,蒜蒜一个人去吃晚饭。不巧的是,吃完饭以后就开始下雨了,蒜蒜并没有带雨伞出来。但是蒜蒜热爱工作,工作使他快乐,他要尽快赶回去写代码。蒜蒜的公司在中关村,中关村这边地形复杂,有很

并非所有流浪者都迷失了自我 600

【unity实战】随机地下城生成3——设置人物移动脚本、动画的切换和摄像机的跟随(含源码)

给房间添加触发器碰撞体,用来判断角色是否进入房间切割人物图片,注意人物每个图片高度可能不同,所有我们需要把轴心调整到人物的底部把人物跑步图片的高度,统一调成20,下面镂空,达到跳跃的效果快速创造人物动画,以人物idle为例,我们选中所有的idle人物图片,拖拽至窗口,unity就会自动生成,并提示保存动画位置别忘记设置人物排序图层,运行人物就动起来了新增run动画设置人物碰撞体设置刚体将重力设置为0,持续人物移动和动画切换的代码设置摄像机跟随单例代码在room中调用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1052

计蒜客 热爱工作的蒜蒜 spfa+dfs

计蒜客 热爱工作的蒜蒜 spfa+dfs

OJBFOWE的博客 1411

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

景驰无人驾驶 1024 编程邀请赛 A.热爱工作的蒜蒜【二维最短路】

众所周知,蒜蒜是一名热爱工作的好员工,他觉得时间就是金钱,做事情总是争分夺秒。 这天晚上,蒜蒜一个人去吃晚饭。不巧的是,吃完饭以后就开始下雨了,蒜蒜并没有带雨伞出来。但是蒜蒜热爱工作,工作使他快乐,他要尽快赶回去写代码。 蒜蒜的公司在中关村,中关村这边地形复杂,有很多天桥、地下通道和马路交错在一起。其中,地下通道是可以避雨的,天桥和马路都没办法避。可以把中关村抽象成为 nn 个点的地图(顶点编

mengxiang000000 546

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计蒜客 18018 热爱工作的蒜蒜 最短路+dp

链接: https://nanti.jisuanke.com/t/18018 题意: 蒜蒜要从1-n,中间有地下的路和地上的路,地下的路长度都为1,且不会被淋,地上的路长度有权值, 问从1-n在距离不超过l的情况下,使得淋雨的路程最少 题解: 定义dp[i][j],表示在走了j条地下的路的情况下从1到i的最短路,然后就是最短路了 只不过push的时候还要记下j的值 代码:...

花海 211

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

景驰无人驾驶 1024 编程邀请赛 A 热爱工作的蒜蒜 dijstra

dist[i][j]表示到达i并且经过j条地下道的最小距离。#include <iostream> #include <cstdio> #include <cstring> using namespace std; typedef long long LL; const int MAXN = 105; const LL inf = 0x3f3f3f3f3f3f3f3f; int n, m1, m2;

DK 533

计蒜客&景驰1024-二维最短路&模板-热爱工作的蒜蒜

https://nanti.jisuanke.com/t/18018 再最短路的过程中。 维护一个 dp[i][j] 表示从起点到达i,走了j个地下通道。(地下通道数目很少。) 边松弛边维护。 用dij和spfa都行。 (dij自己写的一直错。。。今晚心态炸了)#include <iostream> #include <vector> #include <cstdio> #include

天与云与山与水 935

程序员要常问常思考

程序员怎样不断进步?看更多的编程书籍,学更多的开发技能,做更多的项目,这些方法的本质其实都一样:让我们保持提问,保持兴趣,保持思考,学会提出问题解决问题。那程序员想要进步,还有什么方法呢?提问。通过提问不断鞭策、不断提醒自己是否够努力。常常问自己这些问题,加以反思才能不断进步。 你想成为一...

156

StyleGAN 快速上手:用官方实现生成 1024×1024 AI人脸,一文看懂

StyleGAN 是 NVIDIA 对 2019 年 Style-Based GAN 论文的官方 TensorFlow 实现:一个 2600 万参数的生成器,吃进一个 512 维随机向量,就能画出一张 1024×1024 的写实人脸。它解决的核心问题是"如何稳定地生成、编辑和度量 AI 人脸"——每一层卷积都有独立的风格输入,所以你可以按层控制画面,而不是只能换整个随机种子重掷一次。 [![St

gitblog_00393的博客 199

计蒜客 - 闯关游戏 | SPFA

今天分享一道有关 SPFA 单源最短路的算法题。 蒜头君在玩一个很好玩的游戏,这个游戏一共有至多 100100100 个地图,其中地图 111 是起点,房间 nnn 是终点。有的地图是补给站,可以加 kik_iki​ 点体力,而有的地图里存在怪物,需要消耗 kik_iki​ 点体力,地图与地图之间存在一些单向通道链接。 蒜头君从 111 号地图出发,有 100100100 点初始体力。每进入一个地...

凝神长老和他的朋友们 377

SPFA 算法详解( 强大图解,不会都难!)&&spfa优化——深度优先搜索dfs

https://blog.youkuaiyun.com/muxidreamtohit/article/details/7894298  适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回...

sxy201658506207的博客 5万+

[Java] POJ 2387 最短路问题

一、思路 Djkstra模板 求1-N点的最短路。 二、代码 import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class POJ_2387 { static int[][] G = new int[1005][1005]; static int[] dis = ...

Tizzi的博客 1196

大陆争霸[SDOI2010]带限制最短路

只要你有无限个自爆机器人,你就能为所欲为 斯普林·布拉泽 【题目描述】 略 一句话题意: 杰森国有 \(N\) 个城市,由 \(M\) 条单向道 路连接。杰森国的首都是城市 \(N\)。你只需摧毁杰森国首都就能获胜。为了尽量减小己方的消耗,你决定使用自爆机器人完成这一任务。唯一的困难是,杰森国的一部分城市有结界保护,不破坏掉结界就无法进入城市。而每个城市的结界都是由分布在其他城市中的...

214

HDU3790(比较坑的最短路)

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15024    Accepted Submission(s): 4573 Problem Description 给你n个点,m条无向边,每条边都有长

逍遥小章 1947
上一篇: uvalive5713(次小生成树)
下一篇: codeforces888E(折半二分)
constbh
博客等级 码龄10年 10粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值