Lazy Running HDU - 6071 最短路+取模

新手必看:LiteRadio 2c SE遥控器从开箱到飞行的完整指南(附常见问题解答) 本文为新手提供LiteRadio 2c SE遥控器的完整使用指南,涵盖从开箱到首飞的20个关键步骤。详细介绍了遥控器的功能设置、与无人机的对频技巧以及首飞注意事项,帮助用户快速掌握飞行控制,避免常见错误。特别适合无人机初学者阅读。 阅读详情

转载自http://blog.youkuaiyun.com/yasola

题目大意:

给你一个由四个节点组成的环,求从节点2出发,回到节点2的不小于k的最短路。

解题思路:

又是一个可能出现无限向下走的题目。面对这种问题有一个比较常见的处理方法就是利用同余。

题目要求的是回路,回路有这样一个性质,任意两个回路可以连接构成一个新的回路。于是任意一个回路就可以表示成x+n*y的形式,其中x和y是两个回路。现在再回到利用同余防止循环,如果我们固定y(代码中用的变量名为m),那么对于任意两个模y同余的x的效果是相同的,我们只需要保留最小的那个即可。

显然时间复杂度和y正相关,那么我们就取满足题意的最小回路作为y,然后利用最短路算法找到所有起点为1的相互关于y不同余的环,更新答案即可。在最短路的过程中,对于每一个点也只需要保留关于y不同余的路径即可。
#include<algorithm>
#include<vector>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdio>
#include<stack>
#include<iostream>
#include<map>
#include<queue>
#include<cmath>
using namespace std;
#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define bug1 puts("bug1");
#define bug2 puts("bug2");
#define bug3 puts("bug3");
#define N 1200
#define M 100020
#define mod 100000
#define ULL unsigned long long
#define LL long long
#define inf 0x3f3f3f3f


const int maxp=60010;
LL k;
LL ans;
LL G[5][5];
bool vis[5][maxp];
LL dist[5][maxp];
struct Node{
    int u;
    LL dis;
    Node(int u,LL d):u(u),dis(d){}
};
int m;
void spfa(int s){
    mem(vis,false);
    mem(dist,inf);
    vis[s][0]=true;
    dist[s][0]=0;
    queue<Node>q;
    q.push(Node(s,0));
    while(!q.empty()){
        int u=q.front().u;
        LL now_dis=q.front().dis;q.pop();
        vis[u][now_dis%m]=false;
        for(int i=-1;i<2;i+=2){
            int v=(u+i+4)%4;
            LL next_dis=now_dis+G[u][v],next_p=next_dis%m;
            if(v==s){
                if(next_dis<k)ans=min(ans,((k-1-next_dis)/m+1)*m+next_dis);
                else ans=min(next_dis,ans);
            }
            if(dist[v][next_p]>next_dis){
                dist[v][next_p]=next_dis;
                if(!vis[v][next_p]){
                    vis[v][next_p]=true;
                    q.push(Node(v,next_dis));
                }
            }
        }
    }
}
//2017年08月04日20:58:12
int main(){
    int T;sf("%d",&T);
    while(T--){
        sf("%lld",&k);
        rep(i,0,3){
            sf("%lld",&G[i][(i+1)%4]);
            G[(i+1)%4][i]=G[i][(i+1)%4];
        }
         m=2*min(G[1][0],G[1][2]);
        ans=((k-1)/m+1)*m;//不小于等于的经典做法
        spfa(1);
        pf("%lld\n",ans);
    }
}
SpringBoot 通过 JMS 集成 IBM MQ IBM MQ 作为老牌的企业级消息中间件,虽然在当下云原生时代已不再是主流选择,但在金融、银行、保险等传统行业的核心业务系统中仍然占据着重要地位。这些行业对系统的稳定性、可靠性和事务一致性有着极高的要求,IBM MQ 正是在这些方面表现出色。尽管近年来 RabbitMQ、Apache Kafka 等新一代消息中间件在新兴项目中更受欢迎,但许多金融公司和大型企业仍在使用 IBM MQ 作为核心业务系统的消息传递基础设施。 阅读详情

相关推荐

控制障碍函数(Control Barrier Function,CBF) 二、示例

使用一个经典简单的示例讲解CBF的推导

Lyajpunov的博客 6432

取模最短路

题意:给你一个大小为n的集合S,集合里有n个互不相同正整数.有q个询问,每次询问是否能选择S中的一些数字 ( 同一个数字可以选择多次,也可以任何数字都不选),使它们相加的和为m.思路:因为给的数据很大,所以不能用背包。那么我们使用取模最短路的思想。假设我们是对a[1]进行取模。如果说我们得到了所有模a[1]余r的数中的最小的一个,记为dis[r],那么如果有数模a[1]余r,那么只要这个数大于di...

qq_40828805的博客 646

图解B树的原理及操作

本文主要参考:https://blog.youkuaiyun.com/shenchaohao12321/article/details/83243314 1. B树 1.1 B树的定义 B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。 一颗m阶的B树定义如下: 1)每个结点最多有m-1个关键字。 2)根结点最少可以只有1个关键字。 3)非根结点至少有Math.ceil(m/2)-

jinking01的专栏 3万+

Codeforces 311C Fetch the Treasure 取模意义下的最短路 (看题解)

Fetch the Treasure 感觉这题很nb啊, 虽然套了一个一点都不有趣的壳子。 我们注意到 k 的值在 1e4以内, 我们用d[ i ] 表示在模 k == i 能达到的最小的值是谁。 用最短路取更新。。 #include<bits/stdc++.h> #define LL long long #define LD long double #de...

287

UCD9081EVM电源时序管理:硬件配置与GUI操作全解析

电源时序管理是复杂电子系统设计的核心环节,它通过精确控制多路电源的上电/下电顺序,确保核心芯片免受浪涌电流或电压倒灌的损害。其原理基于状态机逻辑与电压监控,技术价值在于将硬连线时序转化为可编程配置,极大提升了系统可靠性与设计灵活性。在服务器、通信设备、工控系统等高可靠性应用场景中,时序控制器是实现稳定启动与故障保护的关键。本文以德州仪器UCD9081评估模块为例,深入剖析其硬件跳线配置与图形用户界面操作,涵盖I2C地址设置、电压监控分压计算、时序条件与故障响应策略等工程实践要点,帮助工程师快速掌握这一电源时

weixin_42696271的博客 303

WGCNA加权基因共表达网络分析(1)简介、原理

WGCNA简介 WGCNA(Weighted Gene Co-Expression Network Analysis, 加权基因共表达网络分析),鉴定表达模式相似的基因集合(module),解析基因集合与样品表型之间的联系,绘制基因集合之间的调控网络并鉴定关键调控基因 WGCNA适用于复杂的转录组数据(样本数目较多) 研究不同器官/组织类型和不同阶段的发育调控、生物和非生物胁迫的不同时间响应机制 WGCNA原理 原理概要 1.构建基因共表达网络:先构建基因共表达网络,通常利用两两基因之间的表达模式来计算

qq_44520665的博客 3万+

洛谷 P2384 最短路 题解

题目链接 比较套路的一道题,本题的方法也可以用来做树的最大乘积独立集 由于本题需要取模,所以不能直接求最短路 我们考虑将每条边取对数,也就是将边权为 www 的边变为 log⁡2w\log_2wlog2​w 这样,根据幂的性质,我们就将乘积最短路转化为了普通最短路,证明显然 最后记得要把边权变回来输出 #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include

Brian_Pan_的博客 390

国产数据库安装部署说明

国产数据库安装部署说明

weixin_38203586的博客 910

“今日头条杯”首届湖北省大学程序设计竞赛 网络赛-E.Jump A Jump(取模最短路)

Problem DescriptionThere's a very popular game called jump a jump recently.In order to get good marks, many people spend a lot of time in this game.Wei is the master of jump a jump,he can easily get a...

WZJRJ28 809

PCB高速信号换层孔新技术:VECS(Vertical Conductive Structure Technology)解析

摘要:垂直导电结构(VeCS)是一种新型PCB互连技术,由平板信号走线和椭圆形接地层构成半同轴结构,相比传统过孔具有显著优势。通过全波仿真和实测验证,VeCS展现出更好的阻抗连续性、更低的插入损耗和回波损耗,以及优异的串扰抑制能力。其椭圆形接地结构能有效隔离电磁干扰,在相同布线密度下远端串扰比传统过孔降低约50%。VeCS制备工艺与传统PCB工艺兼容,无需新增设备,且能实现更高密度互连。测试结果显示,2.5英寸带状线通道中VeCS结构的信号完整性表现明显优于传统过孔,为高速数字系统提供了更可靠的垂直互连解决

小孟同学的博客 201

【SemiDrive源码分析】【X9芯片启动流程】11 - freertos_safetyos目录Cortex-R5 DIL2.bin 引导程序源代码分析

【SemiDrive源码分析】【X9芯片启动流程】11 - freertos_safetyos目录Cortex-R5 DIL2.bin 引导程序源代码分析

|~~~热爱生活、努力学习的小伙汁~~~| 2109

HDU 6071 Lazy Running (最短路)

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6071 题解 又是一道虐信心的智商题。。。 首先有一个辅助问题,这道题转化了一波之后就会化成这个问题: 给定\(a_1,a_2,...,a_n\)和\(K\),求使得\(\sum^{n}_{i=1}a_ix_i=B\)有正整数解且\(B\ge K\)的最小\(B\)值。在本题中\(n=4, a...

weixin_30439131的博客 261

《YOLOv8:从入门到实战》报错解决 & 专栏答疑

《YOLOv8:从入门到实战》专栏上线后,部分同学在学习过程中提出了一些问题,笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容,笔者特意推出了该篇专栏答疑,针对同学们在学习过程中所提出的问题进行汇总记录,并不断实时更新,希望能够帮助到大家!🌈

小哥谈 1241

HDU6071 Lazy Running 同余最短路

HDU6071 Lazy Running 同余最短路题意思路Code(62MS) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6071 题意 一张图上有4个点,一开始在点2处 ,最终也回到点2处 ,问我们怎样走,使得总路径和大于等于K并且最小。输出最短路径值。 思路 同余思想: 令w=min(dis12,dis23)w=min(dis_{12},dis_{23})w=min(dis12​,dis23​),取minminmin是为了降低时空复杂度,代码里会看到。

狙击美佐的博客 282

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hdu-6071 Lazy Running(trick最短路)

In HDU, you have to run along the campus for 24 times, or you will fail in PE. According to the rule, you must keep your speed, and your running distance should not be less than KK meters.  There a

WZJRJ28 390

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU 6071 Lazy Running 同余 + 最短路

传送门:HDU6071 题意:给你一个由四个节点组成的环,相邻两点间可达,求从节点2出发,回到节点2的不小于k的最短路径的长度。 思路: 先摆上官方题解: ​​ 取w=\min(d_{1,2},d_{2,3})w=min(d​1,2​​,d​2,3​​),那么对于每一种方案,均可以通过往返跑ww这条边使得距离增加2w2w。也就是说,如果存在距离为kk的方案,那么必然存在距离为

WA是一笔财富 875

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

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

HDU 6071 Lazy Running(同余最短路的应用)

Lazy Running 思路 还是利用同余的思想,假设存在一条长度为kkk的路,那么也一定存在一条k+basek + basek+base的路base=2∗min(d1,d2)base = 2 * min(d1, d2)base=2∗min(d1,d2)。 dis[i][j]=xdis[i][j] = xdis[i][j]=x表示的是,从2−>i2 -> i2−>i点x≡j(modbase)x \equiv j \pmod {base}x≡j(modbase)的满足条件的最小的xxx,所

lifehappy 369

HDU 6071 Lazy Running

题意:  给你一个由四个节点组成的环,求从节点2出发,回到节点2的不小于k的最短路。 思路: 取w=\min(d_{1,2},d_{2,3})w=min(d​1,2​​,d​2,3​​),那么对于每一种方案,均可以通过往返跑ww这条边使得距离增加2w2w。也就是说,如果存在距离为kk的方案,那么必然存在距离为k+2wk+2w的方案。 设dis_{i,j}dis​i,j​​表示从起

但求心安的博客 668

HDU 6071 Lazy Running(最短路)

【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6071 【题目大意】   给出四个点1,2,3,4,1和2,2和3,3和4,4和1 之间有路相连,   现在从2点出发,最后回到2点,要求路径大于等于K,问路径长度最短是多少 【题解】   取一条与2相连的权值最小的边w。   若存在一条从起点到终点的长度为k的...

weixin_30835923的博客 124

HDU 6071 Lazy Running(同余最短路)

简述题意:给你一个由四个节点组成的环,相邻两点间可达,求从节点2出发,回到节点2的不小于k的最短路径的长度。 算法:同余最短路 难度:NOIP 题解: 假设我们将任意一条长度大于k的回路(从2出发回到2)为可行路径,那么任意一条可行路径加上2w一定还是可行路径,所有可行方案中,最短的是k,最长的为 k + 2 * n * w,(n趋近正无穷),(因为我们可以无限循环地走)显然我们不可能求出...

01232012的博客 386

HDU6071 Lazy Running

题目链接题意​ 存在一个含有4个点的图,给定1-2,2-3,3-4,4-1四条无向边的长度 d1,2,d2,3,d3,4,d4.1d_{1,2},d_{2,3},d_{3,4},d_{4.1} 和一个 KK 值。问起点和终点均为2,可以不断在各个点之间不断往返,使得所经过的路程总长 S≥KS \geq K 时的最小 SS 为多少。分析​ 来自题解的思路。设 w=2min(d2,1,d2,3)

dDarkdawn的博客 392

【hdu 6071】Lazy Running

菜鸡永远都在做着变聚的梦。 题意   有 \(4\) 个点连成一个环,连接顺序依次为 \(1-2-3-4-1\)。相邻两个点之间有个距离 \(d_{i,i+1}\)(特别地,当 \(i=4\) 时为 \(d_{4,1}\))。   有一个人在 \(2\) 号点,他要完成距离为 \(K\) 的跑步任务并回到 \(2\) 号点,问至少需要跑多长距离。   \(1\le d_i\le 3000...

weixin_30954607的博客 97

2017多校四 1005题 hdu 6071 Lazy Running 同余类 最短路

题目链接 题意: 给定一个环上的四个点1,2,3,4,距离分别为d12,d23,d34,d41,要求从2号点出发,最后回到2号点,要求经过的距离为大于等于 K 的最小值,求该最小值。 参考: 1. http://blog.youkuaiyun.com/blessLZH0108/article/details/76690027?locationNum=6&fps=1  ——Alzh

kkkkahlua的博客 638

HDU 6071 Lazy Running(同余+最短路)

Lazy Running Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 287    Accepted Submission(s): 126 Problem Description In HDU, you h

yasolx的博客 1627

HDU 6071 Lazy Running(同余最短路)

#include #include #include #include #include #include using namespace std; typedef long long ll; ll d[5]; struct node{ int x,y;ll dis; node(){}node(int _x,int _y,ll _dis){x=_x;y=_y;dis=_dis;} bool

BanFcc 685
上一篇: Matching In Multiplication HDU - 6073 topsort+
下一篇: Magic FZU - 2280 hash+ 暴力
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值