首页 > 其他分享 >专题:分层图

专题:分层图

时间:2023-11-10 22:12:08浏览次数:31  
标签:fir 专题 洛谷 int tot 分层 dis

专题:分层图

拖了整整一个月,我终于来学习分层图了,原因是考一道 USACO 的题正解死分层图,

秉持着竟然有用,那我就来学学的原则,学习了分层图。

纵然,这确实是个好东西,但是局限性也比较明显 ,分层图的分层的意思是把图整体复制几遍,跨层走意味着使用了一次特殊机会。

但是,显然这对数据范围有严格要求,图的边和点乘以我的层数不能太大,不然就凉了。

 一般建完图以后就是跑一个最短路,这里有一个非常需要重视的地方,就是对最短路算法的选择,有负权的时候切记使用 SPFA,其他一律 Dijkstra,不然会超时 

例题

练完发现都是一个套路,就是路径中给你一些优惠,比如说 \(k\) 次机会让路免费,又或者是减半。其中只有第二题 最优贸易 需要根据题意转换一下思路。

这里放最后一题的代码,很好理解,基本就是一个建图思路。

然后注意如果题面中写到不一定要把 \(k\) 个优惠用完的话,那要记得把每一层的终点给连接起来。

#include<bits/stdc++.h>
using namespace std;
#define N 4500000
int n,m,k,fir[N],nex[N],tot=0,w[N],to[N];
int dis[N],vis[N];
void add(int x,int y,int z){
//	printf("%d %d\n",x,y);
	nex[++tot]=fir[x];
	fir[x]=tot;
	to[tot]=y;
	w[tot]=z;
}
typedef pair<int,int> PII;
void dijkstra(){
	memset(dis,0x3f,sizeof(dis));
	dis[1]=0;
	priority_queue<PII,vector<PII>,greater<PII> >p;
	p.emplace(0,1);
	while(!p.empty()){
		int u=p.top().second;
		p.pop();
		if(!vis[u]){
			vis[u]=1;
			for(int e=fir[u];e;e=nex[e]){
				int v=to[e];
				if(dis[v]>dis[u]+w[e]){
					dis[v]=dis[u]+w[e];
					p.emplace(dis[v],v);
				}
			}
		}
	}
}

int main(){
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1,x,y,z;i<=m;i++){
		scanf("%d%d%d",&x,&y,&z);
		add(x,y,z);add(y,x,z);
		for(int j=1;j<=k;j++){
			add(j*n+x,j*n+y,z);
			add(j*n+y,j*n+x,z);
			add((j-1)*n+x,j*n+y,0);
			add((j-1)*n+y,j*n+x,0);
		}
	}
	for(int i=1;i<=k;i++){
		add((i-1)*n+n,i*n+n,0);
	}
	dijkstra();
	printf("%d",dis[n*(k+1)]);
	return 0;
}

标签:fir,专题,洛谷,int,tot,分层,dis
From: https://www.cnblogs.com/alloverzyt/p/17825201.html

相关文章

  • 卡特兰数专题(Catalan)
    卡特兰数专题(\(Catalan\))一、什么是卡特兰数?明安图数,又称卡塔兰数,英文名\(Catalan\)\(number\),是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图\((1692-1763)\)和比利时的数学家欧仁·查理·卡塔兰\((1814–1894)\)的名字来命名,其前几项为(从第零项......
  • 【专题】2023智能汽车发展趋势洞察报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34219原文出处:拓端数据部落公众号至2025年,智能网联汽车产业规模将突破5000亿。预计具备L2及以上自动驾驶能力的车型销量将突破千万级,渗透率将跃升至42.9%。阅读原文,获取专题报告合集全文,解锁文末56份智能汽车相关行业研究报告。智能汽车发展水平......
  • 【专题】2022-2023中国跨境出口B2C电商报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32805原文出处:拓端数据部落公众号全球疫情的爆发对于全球经济和消费市场都带来了很大的冲击,特别是在消费者的消费行为和零售市场格局方面发生了重大变革。同时由于全球供应链的重新调整,产业分化现象也加速出现。中国跨境电商已经历了十年以上的发......
  • [图论]-分层图最短路
    引言——“分层图最短路”顾名思意,可以知道是在分层的图上跑最短路得算法。当我开始学习这个算法是,看到这个算法名,总有些雨里雾里的。什么是分层,为什么要分层,怎么分层?概念概念:分层图最短路的模型就是在最短路模型的基础上加上$k$个决策。这$k$个决策,并不会影响图得结构,只影......
  • 【专题】2023年中国白酒行业消费白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34188原文出处:拓端数据部落公众号2023年中国白酒行业消费白皮书报告合集,总结了消费市场的两大传承和五大进化,以帮助白酒企业更好地理解消费者心理和供需变化,从而把握增长机会。两大传承包括争夺消费者的“第一口酒”以及品牌在消费决策中的关键作......
  • 【专题】2022年中国制造业数字化转型研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32145本文中所说的制造业数字化转型,指的是在制造企业的设计、生产、管理、销售及服务的每一个环节中,将新一代信息技术应用到制造企业的设计、生产、管理、销售及服务的每一个环节中,并可以以每一个环节中产生的数据为基础,展开控制、监测、检测、预测......
  • 【专题】中国服务机器人产业研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34144原文出处:拓端数据部落公众号仿生机器人作为一类结合了仿生学原理的机器人,具备自主决策和规划行动的能力,正逐渐进入大众视野。它们的核心技术要素包括感知与认知技术、运动与控制技术、人机交互技术和自主决策技术。阅读原文,获取专题报告合集......
  • 【专题】2023年中国手术机器人行业专题报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34144原文出处:拓端数据部落公众号仿生机器人作为一类结合了仿生学原理的机器人,具备自主决策和规划行动的能力,正逐渐进入大众视野。它们的核心技术要素包括感知与认知技术、运动与控制技术、人机交互技术和自主决策技术。阅读原文,获取专题报告合集......
  • 【专题】生成式AI:产业变革与机会论坛(演讲PPT)报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34132自18世纪中期工业革命以来,人类进入工业社会。在历次工业革命中,人类通过发明创造和管理革新,改进生产方式、降低成本、提高效率,随之而来的是生活、物质、文化、教育等各方面的变化,人际关系和社会结构也得以重塑。如今,数字化技术的发展为工业注入......
  • 【专题】数字美的智慧工业白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34132自18世纪中期工业革命以来,人类进入工业社会。在历次工业革命中,人类通过发明创造和管理革新,改进生产方式、降低成本、提高效率,随之而来的是生活、物质、文化、教育等各方面的变化,人际关系和社会结构也得以重塑。如今,数字化技术的发展为工业注入......