hdu 6386 最短路+set

专有钉钉小程序(浙政钉)开发搭建流程总览 最近公司有一个项目要做浙政钉,让我来负责做。靠,我一脸懵,开发了两年多不知道浙政钉是啥,感觉我眼界还是低了。然后就去百度、同事问了一圈才知道就是个钉钉小程序嘛,然后发布到浙政钉上了。就搭建项目跑起来我都肥了很多事,中间走了很多坑。正好领导让我写《钉钉小程序前端开发流程》,这想着也写个博客吧。下面就是整个流程及我所遇到的坑! 阅读详情

Age of Moyu

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 1688    Accepted Submission(s): 511


 

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. Each Weitian has an identification number.

The i-th (1≤i≤M) line connects port Ai and Bi (Ai≠Bi) bidirectionally, and occupied by Ci Weitian (At most one line between two ports).

When Mr.Quin only uses lines that are occupied by the same Weitian, the cost is 1 XiangXiangJi. Whenever Mr.Quin changes to a line that is occupied by a different Weitian from the current line, Mr.Quin is charged an additional cost of 1 XiangXiangJi. In a case where Mr.Quin changed from some Weitian A's line to another Weitian's line changes to Weitian A's line again, the additional cost is incurred again.

Mr.Quin is now at port 1 and wants to travel to port N where live many fishes. Find the minimum required XiangXiangJi (If Mr.Quin can’t travel to port N, print −1instead)

 

 

Input

There might be multiple test cases, no more than 20. You need to read till the end of input.

For each test case,In the first line, two integers N (2≤N≤100000) and M (0≤M≤200000), representing the number of ports and shipping lines in the city.

In the following m lines, each contain three integers, the first and second representing two ends Ai and Bi of a shipping line (1≤Ai,Bi≤N) and the third representing the identification number Ci (1≤Ci≤1000000) of Weitian who occupies this shipping line.

 

 

Output

For each test case output the minimum required cost. If Mr.Quin can’t travel to port N, output −1 instead.

 

 

Sample Input

 

3 3 1 2 1 1 3 2 2 3 1 2 0 3 2 1 2 1 2 3 2

 

 

Sample Output

 

1 -1 2

 

 

Source

2018 Multi-University Training Contest 7

 

 

Recommend

chendu   |   We have carefully selected several similar problems for you:  6396 6395 6394 6393 6392 

 

题意:给你一个n个点m条边的图,然后每个边有个颜色,问你从1到n的最短路是多少,规定从一条边到另一条颜色不同的边花费+1.

思路:每次颜色改变花费都会加一,但是从1到这个点有相同花费的路径的颜色可能不一样没这样会影响它下一条更新的点的花费。所以要记录下来到当前点的最短路径的最后一种颜色。用set记录即可,然后跑spfa。

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
struct edge{
	int to;
	int lenth;
	int next;
}a[400020];
int head[200020];
int n,m,q;
int vis[200020];

struct nodope{
	int val;		//val花费    d结束时的颜色 
	set<int> d;
}d[200020];		//当前点 

int spfa()
{
	memset(vis,0,sizeof vis); vis[1]=1;
	queue<int> q;
	q.push(1);
	for(int i=0;i<=n;i++) d[i].val=INF,d[i].d.clear();
	d[1].val=0;
	while(!q.empty())
	{
		int u=q.front();q.pop();vis[u]=0;
		for(int i=head[u];i!=-1;i=a[i].next)
		{
			int to=a[i].to;
			if(d[to].val>(d[u].val+(d[u].d.find(a[i].lenth)==d[u].d.end())))
			{
				d[to].val=d[u].val+(d[u].d.find(a[i].lenth)==d[u].d.end());
				d[to].d.clear();d[to].d.insert(a[i].lenth);
				if(!vis[to])
				{
					q.push(to);vis[to]=1;
				}
			}
			else if(d[to].val==(d[u].val+(d[u].d.find(a[i].lenth)==d[u].d.end()))&&d[to].d.find(a[i].lenth)==d[to].d.end())
			{
				d[to].d.insert(a[i].lenth);
				if(!vis[to])
				{
					q.push(to);vis[to]=1;
				}
			}
		}
	}
	if(d[n].val!=INF)
	printf("%d\n",d[n].val);
	else printf("-1\n");
	return 0;	
}
int nn;
void add(int x,int y,int z)
{
	a[nn].lenth=z;	a[nn].to=y;a[nn].next=head[x];head[x]=nn++;
	a[nn].lenth=z;	a[nn].to=x;a[nn].next=head[y];head[y]=nn++;
}
int main()
{
	//freopen("2.txt","r",stdin);
	while(~scanf("%d%d",&n,&m))
	{	
		for(int i=0;i<=n;i++)
		head[i]=-1;
		nn=0;
		for(int i=0;i<m;i++)
		{
			int x,y,z;
			scanf("%d%d%d",&x,&y,&z);add(x,y,z);
		}
		spfa();
	}
	return 0;
}

 

用 SAP S/4HANA Configure Predefined Custom Fields 玩转预定义自定义字段:从概念到实战 SAP预定义自定义字段配置指南:安全扩展业务模型的云原生方案 摘要: 本文系统介绍SAP S/4HANA Cloud中预定义自定义字段的配置方法,对比普通自定义字段与预定义字段的区别,阐述其技术特点与业务价值。重点解析"Configure Predefined Custom Fields"应用的核心功能,包括字段元数据配置、多语言支持、UI集成等能力,并通过业务伙伴扩展案例演示完整实施流程。文章指出预定义字段方案在云环境下的独特优势:既满足业务扩展需求,又能保证系统可升级性,是SaaS环 阅读详情

相关推荐

Google OR-Tools的CP-SAT求解器,为什么比传统线性规划更适合你的组合优化问题?

本文深入解析Google OR-Tools中的CP-SAT求解器为何比传统线性规划更适合解决组合优化问题。CP-SAT融合约束规划与可满足性理论,原生支持复杂逻辑约束和离散决策,在物流、生产调度等领域展现出显著优势。通过技术对比和实战案例,展示CP-SAT在处理高组合复杂度问题时的卓越性能。

weixin_28700593的博客 922

HDU6386 Age of Moyu (2018多校第七场1001) (建虚点+堆优化dijkstra)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6386 题意: n个点m条边,每个边上有一个编号; 从一个编号走到另一个编号,需要代价1; 求1到n的最小代价; 分析: 首先dfs: 对于连通的同一编号的边所连接的点,建立一条边权为1的指向一个虚点的边,同时建立边权为0的由此虚点指向这些点的边; 然后dijk; 复杂度O(m) (雾 ...

OI -> ACM -> AI 558

别再死记硬背了!用这5个Qt Design Studio小项目,彻底玩转核心组件

本文通过5个Qt Design Studio实战项目,帮助开发者深入理解核心组件的协作与应用。从动态登录界面到游戏化任务列表,每个项目都展示了组件属性与交互设计的巧妙结合,让你不再死记硬背,而是真正掌握Qt Design Studio的核心技能。

weixin_29202213的博客 271

HDU - 6386

dij最短路 + 条件限制 这道题很有意思,加深了我对Dij的理解。 题意很简单,找一条从1到n的最短路,但若是前一条路和后一条路一致,那么就不计算后一条路,不然不一样了就+1,即边权全是1或0,是0是1取决于前一权值是否和当前权值一致。 那么关键点在哪里呢? 对于dij堆优化的理解。 首先,优先队列里存放的到底是什么? 是待选答案。 vis数组起到什么作用? 区分处理完的集合,和待处理数据的集合...

wyxxzsy的博客 317

CarPlay盒子选购避坑指南:为什么你的车机破解了却用不了?从USB设备ID说起

本文深入解析CarPlay盒子硬件兼容性问题,从USB设备ID匹配到车机适配逻辑,揭示破解成功却无法使用的根本原因。通过分析USB设备识别的核心要素和逆向工程usb_device_manager.xml文件,提供三种主流解决方案对比,并强调操作中的硬件保护机制,帮助车主避免常见陷阱。

weixin_30706691的博客 472

Vivado ChipScope Debugging: Overcoming Common DRC Errors in FPGA Design

本文深入解析Vivado ChipScope调试中常见的DRC错误,特别是AVAL-244和AVAL-245等时钟相关问题,提供实用的Tcl命令解决方案和最佳实践。通过将DRC错误降级为警告的技巧,帮助FPGA设计者高效完成调试流程,同时强调何时应保留DRC检查以确保设计可靠性。

weixin_30335575的博客 416

hdu6363(杭电多校第六场2)容斥、数学公式

bookshelf Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 449    Accepted Submission(s): 207 Problem Description Patrick Star bought a books...

yypurpose的博客 363

【100%通过率】华为od机试C卷【出差 / 员工派遣】C++ 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2193

HDU 6386 Age of Moyu

题目:Age of Moyu 思路:裸的堆优化dijkstra 代码: #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; #define ll long long #define maxn 100 struct Pair{ int x,y; Pair(){} Pair(int xx,int yy) { ...

iwi 271

基于半经验模型的熔断器燃弧过程计算与分析

本文针对1200V/1250A熔断器建立电弧燃烧半经验模型,通过ANSYS计算弧前时间,结合熔体烧蚀、石英砂烧蚀等物理过程简化建模。模型引入电导率随温度变化函数,利用Matlab拟合实验数据确定参数。分析表明:熔体宽度和节距增加会提高弧压峰值并缩短过零时间;总长固定时,断口数和节距影响较小。弧压峰值需控制在额定电压3倍内,过零时间需满足安全裕度。通过Python代码复现了电弧电导率模型、能量平衡方程及弧压计算,验证了熔体结构尺寸对电弧特性的影响规律。

huanghm88的专栏 258

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 385

【HDU 6394】暑期多校day7 Tree (LCT、倍增LCA)

题目大意 给出一个有根树,每一个结点有一个值 ki ,表示到达这个点的的石子可以向根跳 ki 步,现在有两种操作:1)改变一个点的 ki 值,2)查询向一个点丢石子时,石子弹几次才会走出树。 解题思路 这道题其实就是弹飞绵羊那道题的升级版,两种操作可以分别被理解为:改变某个节点的父节点,查询某个结点到根节点的距离。感觉当场只有100人过掉有点少了吧。 代码 #include &l...

yashem66 345

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7959

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

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

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

weixin_30613727的博客 104

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

HDU-6386-最短路

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

all00747的博客 187

hdu 6386 Age of Moyu最短路

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6386 题解看了好久才看懂。。更新最短路径的方式是每个节点用一个set集合来维护。其中val代表到达此节点的当前最短路径。 pre为路径的上一个节点。相当于维护了不止一个信息,然后维护最短路径。如果更新了最短,就将set清空,否则加进去 #include&lt;bits/stdc++.h&gt;...

大乐的博客 218

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

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

Ogmx的博客 330

2018 Multi-University Training Contest 7 HDU6386 Age of Moyu (bfs+优先队列+set)

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

点滴 1035

HDU-6386 Age of Moyu (想法+迪杰斯特拉)

Age of Moyu 题目链接: Age of Moyu 题意 给你N个顶点,M条边,每条边都属于一个海贼,在从一个海贼的边到另一个海贼的边时需要交1点路费,如果还是同一个海贼,则不用交。 思路 现在问题的核心在于,我们原先是直接贪心的找一条最短边,加入进来,但是现在如果直接确定最短路,非常难,因为不知道前一个航道的情况,那么我们就可以用一个set来到达当前点最短路时,可能...

帅帅的博客 402

32.hdu6363 因子容斥+模型+数论

32.hdu6363 因子容斥+组合模型+数论 题意:有N本一摸一样的书,有一个共有K层的书架,现在要把书都放到书架上。 放完后假设第 i层书架有 Bi本书,则该层书架的稳固值为 (2^Bi)-1 定义整个书架的美观值为所有层书架的稳固值的GCD 问现在随机放这些书,整个书架的美观值的期望值是多少。 思路:直接搬得官方题解,很清晰了 所以我们只用考虑GCD(x1,x2,x3….)的...

animalcoder 245

HDU6386(最短路变形

一句话题解:  不会用题解写的做。。。   题意:给你一个图,每条边有一个价值。从1走到n,每次路径的价值发生变化花费就会+1,问最少花费。如果走不到n点输出-1。 思路:bfs搜索,每走到一个点入队。每次取队首元素出队,dfs该结点能走到的所有不需要花费的结点(路径价值与之前的相同),如果该结点未被访问过则更新花费,并入队。 到n的最短路一定会先被搜索到,因为bfs每次的花费都在增...

老街# 462

hdu6386(dijkstra+堆优化+记录状态)

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

yu121380的博客 547

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

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
上一篇: Wannafly挑战赛20 D挑选队友
下一篇: hdu 6396(优先队列)
阿狸是狐狸啦
博客等级 码龄10年 33粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值