hdu 6386 Age of Moyu最短路

从零到一:手把手教你用Python+LangChain搭建企业级RAG知识库(附避坑指南) 本文为开发者提供了一份详尽的实战指南,手把手教你使用Python和LangChain框架从零构建企业级RAG知识库。内容涵盖环境搭建、文档处理、向量化检索、提示工程及生产部署等核心环节,并重点分享了文档分割、检索优化等关键避坑经验,旨在帮助读者打造稳定、高效且易于维护的智能知识中枢。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6386

题解看了好久才看懂。。更新最短路径的方式是每个节点用一个set集合来维护。其中val代表到达此节点的当前最短路径。

pre为路径的上一个节点。相当于维护了不止一个信息,然后维护最短路径。如果更新了最短,就将set清空,否则加进去

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define mod 1000000007
#define For(i,m,n) for(int i=m;i<=n;i++)
#define Dor(i,m,n) for(int i=m;i>=n;i--)
#define LL long long
#define lan(a,b) memset(a,b,sizeof(a))
using namespace std;

set<int> sta[100010];

struct node
{
    int to,w,next;
}bian[100010*4];
int head[100010];

int tot=0;
void add(int p,int q,int w)
{
    bian[tot].to=q;
    bian[tot].w=w;
    bian[tot].next=head[p];
    head[p]=tot;
    tot++;
}
int dis[100010];


struct pou{
    int val,u;
    int pre,fa;
    bool operator <(const pou &p) const{return val>p.val;}
};
void pin(int s,int t)
{
    lan(dis,inf);
    dis[s]=0;
    priority_queue<pou> run;
    run.push((pou){dis[s],s,-1,-1});
    while(!run.empty())
    {
        pou x=run.top();
        run.pop();
        int pre=x.pre,u=x.u;
        if(x.val>dis[u])continue;
        else if(x.val==dis[u])
        {
            bool f=1;
            if(sta[u].find(pre)!=sta[u].end())
                continue;
            sta[u].insert(pre);
        }
        else
        {
            dis[u]=x.val;
            sta[u].clear();
            sta[u].insert(pre);
        }

        for(int i=head[u];~i;i=bian[i].next)
        {
            int to=bian[i].to,w=bian[i].w;
            if(to==x.fa)continue;
            if(dis[u]+(pre!=w)<=dis[to])
            {
                dis[to]=dis[u]+(pre!=w);
                if(to!=t)
                run.push((pou){dis[to],to,w,x.u});
            }
        }

    }

}


int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        tot=0;
        lan(head,-1);
        For(i,1,n)
        sta[i].clear();
        For(i,1,m)
        {
            int p,q,w;
            scanf("%d%d%d",&p,&q,&w);
            add(p,q,w);
            add(q,p,w);
        }
            pin(1,n);
            if(dis[n]==inf)
                dis[n]=-1;
            printf("%d\n",dis[n]);
    }
    return 0;
}

 

【AI智能体】最强AI编程利器 Claude Code 从部署到项目实战详解 最强AI编程利器 Claude Code 从部署到项目实战详解 阅读详情

相关推荐

STM32 FMC驱动AD7606实战:从硬件连接到时序调试全流程解析

本文详细解析了STM32 FMC驱动AD7606的全流程,包括硬件连接、FMC接口配置、驱动程序设计和时序调试。通过实战案例,展示了如何利用STM32的FMC总线实现与AD7606的高效数据传输,特别强调了电源设计、信号连接和PCB布局等关键要点,为嵌入式数据采集系统开发提供了实用指导。

aa123的博客 1004

hdu6386 Age of Moyu【最短路】

Age of Moyu Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 3125    Accepted Submission(s): 981   Problem Description Mr.Quin love fishes ...

wybooooooooo的博客 196

如何把Excel的数据导入python?

Python数据分析——excl导入数据的简单方法(xlrd) 本文的初衷是发现网上很多Excel导入Python都没有结合具体Excel文档进行讲解,所以这篇文档将会呈现一个简单快速的Excel+Python的入门方法。 开发环境 Prerequisites: 在开始用Python导入Excel之前,要配置好自己的开发环境,最好有IDE(terminal也可)+安装相应的数据分析包。 IDE :pycharm,vscode,etc 数据分析包:matplotlib,xlrd,numpy,etc 导入数

qq_40783513的博客 7万+

hdu6386 Age of Moyu(最短路)

题目 n个点,m条双向边 每条边三个参数a,b,c, 代表a-&gt;b和b-&gt;a的主人是c 当a-&gt;b-&gt;c的时候, 若a-&gt;b与b-&gt;c同主,则第二条边没有边权 否则第二条边边权为1, 特别地从起点出发的第一条边的边权一定为1, 问从1号点是否能到达n号点,最小边权是多少 思路来源 https://blog.youkuaiyun.com/Originum/...

小衣同学的博客 282

MATLAB多项式计算

MATLAB多项式计算 在MATLAB中,n次多项式用一个长度为n+1的行向量表示(因为是n个幂次项系数加上一个常数项),缺少的幂次项系数为0。 例如 n次多项式: P(x)=anxn+an-1xn-1+an-2xn-2+…+a1x+a0 表示为: [an,an-1,an-2,…,a1,a0] 目录MATLAB多项式计算1.多项式的加减运算2.多项式的乘法运算3.多项式的除法运算4.多项式的导函数5.代数多项式求值6.矩阵多项式求值7.多项式求根 1.多项式的加减运算 事实上,多项式的加减运算就是其所对应的

路遥芝麻的博客 1万+

STM32F4+FreeRTOS实战:手把手教你移植LWIP2.1.2(含LAN8720配置避坑指南)

本文提供了一份详尽的实战指南,手把手教你如何在STM32F4平台结合FreeRTOS实时操作系统,成功移植轻量级TCP/IP协议栈LWIP 2.1.2。文章重点剖析了硬件驱动层LAN8720 PHY芯片的配置要点与常见“坑点”,并深入讲解了LWIP与FreeRTOS的深度整合、关键配置及稳定性优化策略,旨在帮助开发者构建稳定可靠的产品级嵌入式网络功能。

ik678901234的博客 1063

HDU 6386 Age of Moyu (最短路+set)

<题目链接> 题目大意:给定一张无向图,有n个点m条边,从一条边到另一条边,如果两边的指不同 花费就要+1,如果相同就不需要花费。 先从1走到n问最小花费是多少。(第一条边的花费都是1) 解题分析: 开始还以为类似于Dijkstra这样的贪心过程是伪的,但是本题确实是dijkstra,不过需要进行一些巧妙的变形,用一个set记录到达每个点的最优花费的所有的路径的前一条边(因为到达...

weixin_30613727的博客 104

经典烧脑算法逻辑题--高楼扔鸡蛋:最少次数测出鸡蛋摔碎临界点。

如果在第2层没碎,换到第3层扔.......如果第59层没碎,换到第60层扔;有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。因此,我们尝试每10层扔一次,第一次从10层扔,第二次从20层扔,第三次从30层......一直扔到100层。如果第一枚鸡蛋,在50层碎了,第二枚鸡蛋,就从第1层开始扔,一层一层增长,一直扔到第49层。如果第一枚鸡蛋在50层没碎了,则继续使用二分法,在剩余楼层的一半(75层)往下扔。

借雨醉东风的博客 1818

HDU 6386 Age of Moyu(最短路变形)

Age of Moyu Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1531    Accepted Submission(s): 467   Problem Description Mr.Quin love fishes ...

LSD20164388的博客 622

【FPGA】Robei EDA 的使用(7)—— Robei文件上板试验

#沐朝露兮以自华,觅大道兮以求成 我又滚过来了,研究了20多天RISCV,结果最后因为硬件问题导致无法在比赛中使用RISCV CPU,虽然已经临近比赛后期了,非常的崩溃,但是也没有什么办法。唉,一切不过是从头再来罢了。(写写博客舒缓我心中苦闷) ————————————————进入正文的分割线———————————————— 今天介绍一下如何利用 Robei EDA 生成文件,导入vivado中,综合下载到开发板里。拿我一个PWM控制舵机的代码为例。 Robei EDA设置 假设代码模块(model文件)经

Ninquelote的博客 2562

17|CI/CD 集成与质量门禁:让精准测试进入发布流水线

本文讲解精准测试如何接入 CI/CD 流水线,并通过质量门禁辅助发布决策。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 65

hdu 6386 Age of Moyu (求最短路 优先队列)

 题意: 有n个点m条边   n个点编号为1~n   每条边都有一个值  从一条边到另一条边,如果两边的指不同 花费就要+1,如果相同就不需要花费。 先从1走到n问最小花费是多少。(一开始从点1出来花费都为1) 思路: 总体而言是求最短路   然而普通的最短路在这里无法计算距离。  那么就用set【i】记录  当前到i这个点路径最短时 连向i的边有哪些  (因为可能有多种方案 到i 路径...

lkaicheng的博客 358

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2047

Age of Moyu——hdu6386(最短路+思维)

Age of Moyu Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 272    Accepted Submission(s): 58 Problem Description Mr.Quin love fishes so m...

20164225的博客 553

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU6386 Age of Moyu 最短路dijkstra+堆优化

这道题应该是比较明显的最短路变形了。一开始用了spfa,TLE了。。后来发现dijkstra+堆优化时间复杂度可以降到O(mlogm),改用这个算法就可以了,对应改下结构体和dijkstra函数。另外注意无向图加两次边,edge数组也要开两倍(我就一直WA在了这个点上QAQ...) 附上AC代码: #include<cstdio> #include<cstring> ...

A confused programmer 453

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

HDU 6386 Age of Moyu(最短路+set)

Description 给出一条nnn个点mmm条边的无向图,每条边有颜色,如果当前边的颜色与前一条边的颜色相同则当前边边权为000,否则为111,问111到nnn的最短路长度 Input 多组用例,每组用例首先输入两整数n,mn,mn,m表示点数和边数,之后mmm行每行输入三个整数u,v,cu,v,cu,v,c表示u,vu,vu,v之间有一条颜色为ccc的边 (2≤n≤105,0≤m≤2...

ZSQ 268

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Day 7 A - Age of Moyu HDU 6386 | 最短路 | SPFA | 链式前向星

松弛:原来用一根橡皮筋连接p和w两点,现在有一点v到w的路径更短,现在把橡皮筋w点的另一端p换成v点,这样缓解橡皮筋紧绷的压力,让其变得松弛。 来自:原博 关于SPFA算法 来自:原博 链式前向星 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f//可以使用memset //链式前向星+S...

CarpeDiem 266

HDU 6386 Age of Moyu【最短路+set || DP】

题意:1-&amp;gt;n的最短路,边的编号每变动一次权值加一; 分析: 用set||dp维护边的编号,再套上最短路直接写就行; dfs跑超时了,这很正常。。。我换成dij+set+输入挂也超时。。。把set换成dp(因为对于每个点只需要保存两个编号不同的权值)还是TLE。。。最后把前向星存图将成vector,pair换成结构体,输入挂砍掉给我AC了。。。AC的代码在本地比我前几份代码慢了1500...

王小二的博客 259

HDU - 6386 - Age of Moyu (BFS分层+DFS 或者 最短路+set)

题意: 连续相同类型的边花费为1,走不同的边花费加一,求最少花费 BFS:维护当前最少花费,每次往外扩展一步即可 最短路:set记录到达改点的边的类型都有哪些(距离相同),如果出现更小的则清空,否则若相同,加入集合。 在进行距离更新时判断一下set里有没有当前类型的边即可 BFS #include <bits/stdc++.h> using namespace std; ...

刘二狗的博客 372

D - Age of Moyu HDU - 6386 -BFS+DFS分层最短路

D - Age of Moyu  HDU - 6386  题意:双向图,m条边,每条边有一个编号id,而花费就是根据这个id的变化来确定的求1-n的最短路 思路:全值为0,1的图直接bfs按层遍历图找到n就一定是最短,但是这里需要注意的是相连的边并且id是相同的 需要压缩成一个点,因为在这些边上走是一直花费为0的,所以bfs分层遍历同时进行着dfs路径压缩就可知得到最优解 ...

BePosit的博客 330

HDU 6386 Age of Moyu (最短路变形+堆优化)

Age of Moyu Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 3125    Accepted Submission(s): 981   Problem Description Mr.Quin love fishes ...

满月照亮的路 399

2018HDU多校7-1001-Age of Moyu(hdu 6386)-最短路变形

题意: 给出一个无向图,每个边有一个标号,在标号相同的边上走不增加花费,每走到标号不同的边上时,花费+1,求从1~n的最小花费 (狗才摸鱼..) 思路: 与最短路问题极为相似,考虑对最短路算法进行修改 在spfa算法的基础上,遍历每个点,使用set记录由哪条边到达该点,若花费相同时,优先选由相同标号边到达的点,不同时按照正常spfa选择花费小的点,这样既可得到答案...

Ogmx的博客 330

HDU 6386 - Age of Moyu [2018杭电多校联赛第七场 A](最短路变形)

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6386 【题意】 给定一个n个结点m条边的无向图,结点编号为1~n,每条边有一个类型属性,现在要从结点1出发走到结点n,连续地走同种类型的边只会花费1的代价,如果当前边的类型为A,下一步走到了类型为B的边上,就会产生额外的代价,问你最小代价是多少 【...

weixin_30681121的博客 120

HDU - 6386 Age of Moyu (dfs+bfs)

原题链接:HDU - 6386 题意: 给你n个站点,m条边连接。每一条边都有一个编号,顺着编号相同的一直走整条路上只花费为1。如果在中途换到不同编号的边,则花费会增加。 思路: 或许一开始会想到最短路,我们先建个图然后用dijkstra跑一下。建图的话我们可能想到dfs或者bfs去搜索,相同编号则花费为1。然后....我们就TLE了 关于TLE主要是建图上我们单纯dfs或者...

128

HDU 6386 Age of Moyu(透彻理解BFS求最短距离+DFS)

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem Description Mr.Quin love fishes so much and Mr.Quin’s city has a nautical system,consisiting of N ports ...

vocaloid01的博客 1091

HDU 6386 Age of Moyu BFS+优先队列

Problem Description Mr.Quin love fishes so much and Mr.Quin’s city has a nautical system,consisiting of N ports and M shipping lines. The ports are numbered 1 to N. Each line is occupied by a Weitian....

深海沧澜的博客 438
上一篇: Codeforces Round#502 (Div1+Div2)C. The Phone Number思维
下一篇: hdu 6390 GuGuFishtion 欧拉函数性质+容斥
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值