Problem : 暴力摩托

暴力摩托 Description N个站,之间连了M条双向的通路!但每条路都规定了一个速度的限制值,在这条路上必须以这个速度前进!所以在 前进的时候要调整速度,现决定尽量使调整的幅度小一些,也就是使走过的路的速度最大值与最小值之差最小! Input 第一行有2个正整数N , M , 分别表示站点数,路径数. 接下来M行,每行有3个正整数 X, Y, V表示X, Y之间有一条路,其Speed值是V。 再接下来... 阅读详情

Problem : 暴力摩托

原文
Time Limit: 1 Sec Memory Limit: 128 MB

Description

N个站,之间连了M条双向的通路!但每条路都规定了一个速度的限制值,在这条路上必须以这个速度前进!所以在
前进的时候要调整速度,现决定尽量使调整的幅度小一些,也就是使走过的路的速度最大值与最小值之差最小!

Input

第一行有2个正整数N , M , 分别表示站点数,路径数.
接下来M行,每行有3个正整数 X, Y, V表示X, Y之间有一条路,其Speed值是V。
再接下来是数K, 表示任务数,
下面K行,每行有一对正整数P,Q ,表示一个任务从P到Q.
(1<=n<=200, 1<=m<=1000, 1<=K<=10)

Output

对于每一个任务输出一行,仅一个数,即最大速度与最小速度之差。

Sample Input

4 4
1 2 2
2 3 4
1 4 1
3 4 2
2
1 3
1 2

Sample Output

1
0
HINT
相信有很多人和吴伊茗一样,在看到这道题的时候最先想到的就是树或是dfs,但再看看数据范围,能不能过自己心里也没底,最后看看标签 “并查集” ,顿时摸不着头脑,接着就放弃了。
其实,这题也没有这么难,我们可以用并查集来优化。
由于要使两者差最小,则必须使最大值尽可能的小,使最小值尽可能的大。
步骤:
1、我们先按每一条边的值从小到大排序(至于为什么,后面会讲到)
2、接着,我们可以枚举最最小权值的边,在以这条边为起点,去搜索能使x和y两点相连的路线(这里需要运用并查集,若两者的根相同,则可以相连),找到一条能使x和y相连的最大权值的边,就跳出循环(由于之前已经排好序,所以在它后面的,肯定会比当前值大),继续枚举。
3、若能够相连,则以当前值的差与小差去作比较,取较小值。
4、一次打印一个即可。

code:

#include<bits/stdc++.h>
using namespace std;
int f[201],x,y,n,m;
struct dd {
    int x,y,z;//x、y为这条边的两个结点,z为权值
} v[1001];
bool cmp(dd a,dd b) {
    return a.z<b.z;
}
int find(int i) {
    if(f[i]==i) return i;
    return f[i]=find(f[i]);//并查集,扁平化使时间缩短
}
void work() {
    int i,j,ans=INT_MAX;
    for(i=1; i<=m; i++) {//枚举最小值
        for(j=1; j<=n; j++) f[j]=j;//初始化
        for(j=i; j<=m; j++) {//枚举最大值,保证最大值比最小值大
            if(find(v[j].x)!=find(v[j].y))//若当前边还未相连,则把两点相连
                f[find(v[j].x)]=find(v[j].y);
            if(find(x)==find(y))//若找到路线,则退出循环
                break;
        }
        if(f[x]==f[y])//若以当前值为最小值,且x与y能够相连,则去作比较
            ans=min(ans,v[j].z-v[i].z);//最大值减去最小值
    }
    printf("%d\n",ans);
}
int main() {
    int i,j,k;
    scanf("%d%d",&n,&m);
    for(i=1; i<=m; i++) scanf("%d%d%d",&v[i].x,&v[i].y,&v[i].z);
    sort(v+1,v+m+1,cmp);//排序
    scanf("%d",&k);
    for(i=1; i<=k; i++) {
        scanf("%d%d",&x,&y);
        work();
    }
}
关于组合运用的例子 ***** 1,暴力摩托程序(完成下列需求)**:**** #1.1 # 创建三个游戏人物,分别是: 苍井井,女,18,攻击力ad为20,血量200 东尼木木,男,20,攻击力ad为30,血量150 波多多,女,19,攻击力ad为50,血量80 1.2 # 创建三个游戏武器,分别是: 平底锅,ad为20 斧子,ad为50 双节棍,ad为65 1.3 创建三个游戏摩托车,分别是... 阅读详情

相关推荐

【动态规划】暴力摩托

1、            暴力摩托 (car.pas/c/cpp) 【问题描述】 晚会上大家在玩一款“暴力摩托”的游戏,它拥有非常逼真的画面和音箱效果! 当然了,车子总是要加油的咯,已知赛道长S公里(S 加油量 车速(公里/小时) 100 (10,20] 90 (20,30]

wu_yihao的专栏 1559

最短路练习

学完最短路后,首次练习,做的这道题目: 输入包括多组数据。每组数据第一行是两个整数N、M(N 输入保证至少存在1条商店到赛场的路线。 对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间。         这道题算是简单题,直接套用模板就可以啦。。 #include #include #include #define MAXN 1000000000 usi

hldfight 646

暴力摩托金钱修改加速锁定(含Delphi源码)

暴力摩托金钱修改加速锁定(含Delphi源码)。有人问是什么版本,这个东东在pc或windows中只有唯一的一个版本,就是1996年的for windows95的版本(所以对硬件要求非常低且画面很糟糕),这个可以在赛道上按V键进行显示,虽然网络上流行的下载标明是2002、2004那些,实际上仅仅是那些汉化的人修改了text文件夹下的资源DLL:原本没有chs.dll故使用中文windows时会提示找不到语言文件,他们把enu.dll复制成chs.dll就不会有这个提示了,然后使用工具编辑chs.dll,所以会显示原本没有的2004这样的版本信息。

MathorCup B题实战:用HMM与鲁棒优化解物流调度真问题

物流调度建模是运筹学与数据科学交叉的核心应用场景,其本质是将非结构化业务日志转化为可量化、可优化的数学过程。从状态流建模到隐马尔可夫模型(HMM),再到考虑天气、司机离线等不确定性的鲁棒优化,技术路径需兼顾统计可解释性与工程实时性。Matlab擅长快速求解整数规划与HMM训练,Python则在地理空间处理(Geopandas)、异常检测(scikit-learn)和系统集成中不可替代。二者协同不是工具选择问题,而是面向真实调度闭环——问题识别、特征构建、模型求解、结果落地——的工程范式升级。本文以Matho

weixin_33827731的博客 352

暴力摩托2.5中文加强版

暴力摩托2.5中文加强版,经典小游戏,回顾历史的经典,非常的棒,呵呵呵呵!还可以找寻一下从前的游戏时光!

暴力摩托 2002 Final

“暴力摩托”是一款与众不同的竞速类游戏,它拥有非常逼真的画面和音响效果,如疾驰而过的汽车呼啸声,摩托车的引擎声和转弯时轮胎与地面摩擦而产生的声音。而且它在游戏中加入了对抗成份,比赛中你可以使用拳、脚去干扰对方,使其落后于你,是不是很卑鄙啊? 游戏中千万不能手下留情,因为对手会主动攻击你。如果遇到开摩托车的警察,虽然也可以对他踢上一脚,但可得小心点呀,万一被他们捉住了,那就 GAME OVER 啦!

1703 暴力摩托

Problem : 暴力摩托 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 120 Solved: 62 [Submit][Status][Web Board]DescriptionN个站,之间连了M条双向的通路!但每条路都规定了一个速度的限制值,在这条路上必须以这个速度前进!所以在 前进的时候要调整速度,现决定尽量使调整的幅度小一些,也就是使走...

qq_38153006的博客 291

Unity3D 城市摩托车手游戏源码

Unity3D 城市摩托车手游戏源码 unity城市摩托赛车手游完整源码,无尽的赛道,可以收集金币、电源、更换车辆、加速,有菜单和积分系统,项目完整。 运行环境: Unity 4.6.1

codeforce_exercise_r34

目录P1967 货车运输 :问题描述题目简述输入/输出格式样例问题分析解题思路参考代码心得体会 P1967 货车运输 : 问题描述 题目简述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m条双向道路。每一条道路对车辆都有重量限制,简称限重。 现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 输入/输出格式 输入格式: 第一行有两个用一个空格隔开的整数 n,m 表示 A 国有 n 座城市和 m 条道路。 接下来 m 行每行三个整数 x,y,z,每两个整

qq_43715114的博客 528

Proteus仿真实战:ADC0832时序解析与51单片机精准电压采集

本文详细解析了ADC0832模数转换芯片在Proteus仿真环境中的时序控制与51单片机驱动实现。通过实战代码示例和精度优化技巧,帮助开发者掌握电压采集的关键技术,包括时序配置、数据校验和噪声抑制等核心要点,提升嵌入式系统设计的精准度与可靠性。

weixin_29172963的博客 873

SLAM工程师面试避坑指南:2025年最新高频考点与实战代码解析

本文为SLAM工程师提供2025年最新面试避坑指南,涵盖高频技术考点如VINS初始化、三维几何处理、多传感器融合架构设计等,并包含实战代码解析。特别针对算法工程师面试中的常见陷阱,提供系统设计框架和代码模板,帮助求职者提升通过率。

metaverse5vr的博客 246

题解:最短路(floyed)

题目描述 给一张无向图G(U, E), 询问任意两点的最短距离。 输入 第一行两个整数n,m表示图中结点数和边的数量, 结点从1到n编号。 接下来m行,每行三个整数u,v,w表示u,v之间有一条距离为w的边。 接下来一行一个整数q,表示询问次数。 接下来q行每行两个整数u,v,表示询问u到v的最短距离, 如果u不能到达v输出-1. 数据范围:n <= 100, m <= 5000, q...

晚安( ̄o ̄) . z Z 1986

从零到一:3D-ResNet50在医学影像中的实战陷阱与避坑指南

本文深入探讨了3D-ResNet50在医学影像分类中的实战应用,重点解析了NIFTI数据预处理、小样本迁移学习陷阱及GPU显存优化等关键问题。通过分块加载、混合精度训练等技巧,有效解决了医学影像处理中的内存管理和性能挑战,为开发者提供了实用的避坑指南和优化策略。

weixin_29038345的博客 390

C语言:字谜问题

问题描述给定一个n行m列有字母构成的二维数组,找出特定的p个单词在其中出现的位置和方向。方向可以是水平、垂直或者对角线的任何方向。输入第一行是两个正整数n和m,意义如题目所述。接下来总共n行,每行有m个小写字母。再接下来的一行中有一个正整数p,表示有p个单词需要查找。接下来p行每行一个单词。其中(0&lt;n,m&lt;20,0&lt;p&lt;20,要查找的单词长度不超过20)。输出对每个单词,...

weixin_42428457的博客 1594

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1048

零成本接入Gemini Pro:GCP+NewAPI+OpenCode全栈方案

AI编程助手在现代开发流程中扮演着越来越重要的角色,其核心原理是通过大语言模型理解开发者意图并生成代码。以Gemini Pro为代表的顶级模型虽然能力出众,但成本控制和接入复杂度成为主要痛点。通过Google Cloud Platform的免费额度与开源工具链组合,开发者可以构建零成本的AI辅助开发环境。该方案采用Vertex AI作为基础模型服务,通过New API实现协议转换,最终与OpenCode终端工具深度集成。这种架构特别适合需要长期稳定使用AI编程助手的开发者,既能享受Gemini Pro的百万

weixin_29051245的博客 428

牛客网 Crazy Fences

题目链接:Crazy Fences 题目大意: FJ有一个牧场,牧场中有 n(n≤500)n(n\leq500)n(n≤500) 个围栏(围栏都是水平或是竖直的)和 ccc 头牛,给出每个围栏的起始点坐标和终点坐标以及每头牛的坐标,围栏围成的封闭区域成为社区,问所有的社区中,哪个社区中有最多的牛。 题目思路: 坐标离散化,把每个围栏和牛的坐标进行离散化,然后就可以搜索处理出所有社区的牛的个数,最后统计答案,需要注意的在离散化的时候,需要对点的坐标*2以保证不会把本来相邻但不相接的边连接在一起,下面是完整代码

lycccccccc的博客 450

学习海康VisionMaster之BLOB分析

6):软阈值(相对):是一种动态阈值分割方法,其核心思想是 基于图像局部特性(如背景或参考区域)自适应调整阈值范围,适用于光照变化明显、背景灰度不均的场景。3:拖入位置修正功能:这个非常重要,模版匹配成功后会得到新的匹配坐标,那和创建模版时候的原点坐标会组合成一个坐标变换矩阵,通过这个矩阵,那后续的blob分析窗口则可以实现精确定位来查找目标对象。(2):设定参数:这里阈值方式是blob的核心算法,根据不同的应用场景来选择不同的阈值方式。8:高级参数:是设定blob区域的特征范围,用于筛选出来特定的区域。

yuhouxiyang的专栏 3618

[郑州培训2012] 暴力摩托-并查集

Description 华英雄最喜欢玩暴力摩托,一个通宵之后,总算过了全关!正当他为自己的成绩洋洋得意的时候却发现居然还有一个特别的附加关!华英雄虽然累得眼睛都睁不开了,但是他还是决定再试一试!  这一关与以前的关不同,包含有N个站,之间连了M条双向的通路!但每条路都规定了一个Speed值,在这条路上必须以这个速度前进!所以在前进的时候要频繁的调整速度,这对鱼类来说是很痛苦的,所以华英雄决定尽

LJQ 1288

基于WebRTC的现代在线视频会议系统设计与实现

本文详细介绍了如何使用Java和WebRTC技术构建一个完整的在线视频会议系统。我们将从WebRTC的基础原理讲起,逐步深入到信令服务器设计、媒体服务器配置、前后端实现以及高级功能的开发。文章包含大量代码示例和架构图,旨在为开发者提供一套完整的视频会议解决方案。关键词:WebRTC、视频会议、Java、Spring Boot、信令服务器、STUN/TURN、媒体服务器:获取摄像头和麦克风访问权限:处理点对点连接和流传输:实现浏览器之间的任意数据交换。

2201_76125393的博客 186

硬件学习手册【总目录】

欢迎大家来到《硬件学习手册》,专栏主要包括 《硬件经验手册》《电子元器件器件手册》《PCB手册》《CPU手册》《元器件选型手册》五个分册。在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。

fydar的博客 5851
上一篇: Problem : [Usaco2017 Dec]Blocked Billboard
下一篇: Problem: [Noip2008] 笨小猴
赵崇延
博客等级 码龄8年 18粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值