首页 > 其他分享 >最短路径问题

最短路径问题

时间:2023-08-04 15:55:27浏览次数:42  
标签:memset int 路径 iu 最短 问题 vis push sizeof

dijkstra模板

void dijkstra(int iu){
	memset(d,88,sizeof(d));
	memset(vis,0,sizeof(vis));
	d[iu]=0;
	q.push({iu,0});
	while(!q.empty()){
		int x=q.top().u;
		q.pop();
		vis[x]=true;
		for(int i=0;i<g[x].size();i++){
			int iv=g[x][i].v,iw=g[x][i].w;
			if(!vis[iv]&&d[x]+iw<d[iv]){
				d[iv]=d[x]+iw;
				q.push({iv,d[iv]});
			}
		}
	}
}

floyd模板

void floyd(){
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==k||i==j||j==k)continue;
				if(dis[i][k]+dis[k][j]<dis[i][j]){
					dis[i][j]=dis[i][k]+dis[k][j];
					dis[j][i]=dis[i][j];
				}
			}
		}
	}
}

【USACO】热浪

#include<bits/stdc++.h>
using namespace std;
int n,cnt,m,d[3005],ans,s,e;
bool vis[3005];
struct node{
	int u,dist;
};
struct cmp{
	bool operator()(node a,node b){
		return a.dist>b.dist;
	}
};
struct node2{
	int v,w;
	
};
priority_queue<node,vector<node>,cmp> q;
vector<node2> g[3005]; 
void dijkstra(int iu){
	memset(d,88,sizeof(d));
	memset(vis,0,sizeof(vis));
	d[iu]=0;
	q.push({iu,0});
	while(!q.empty()){
		int x=q.top().u;
		q.pop();
		vis[x]=true;
		for(int i=0;i<g[x].size();i++){
			int iv=g[x][i].v,iw=g[x][i].w;
			if(!vis[iv]&&d[x]+iw<d[iv]){
				d[iv]=d[x]+iw;
				q.push({iv,d[iv]});
			}
		}
	}
}
int main(){
	cin>>n>>m>>s>>e;
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		g[x].push_back({y,z});
		g[y].push_back({x,z});
	}
	dijkstra(s);
	cout<<d[e]<<endl;
	return 0;
}


```#include<bits/stdc++.h>
using namespace std;
int n,cnt,m,d[3005],ans,s,e;
bool vis[3005];
struct node{
	int u,dist;
};
struct cmp{
	bool operator()(node a,node b){
		return a.dist>b.dist;
	}
};
struct node2{
	int v,w;
	
};
priority_queue<node,vector<node>,cmp> q;
vector<node2> g[3005]; 
void dijkstra(int iu){
	memset(d,88,sizeof(d));
	memset(vis,0,sizeof(vis));
	d[iu]=0;
	q.push({iu,0});
	while(!q.empty()){
		int x=q.top().u;
		q.pop();
		vis[x]=true;
		for(int i=0;i<g[x].size();i++){
			int iv=g[x][i].v,iw=g[x][i].w;
			if(!vis[iv]&&d[x]+iw<d[iv]){
				d[iv]=d[x]+iw;
				q.push({iv,d[iv]});
			}
		}
	}
}
int main(){
	cin>>n>>m>>s>>e;
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		g[x].push_back({y,z});
		g[y].push_back({x,z});
	}
	dijkstra(s);
	cout<<d[e]<<endl;
	return 0;
}

floyd

#include<bits/stdc++.h>
using namespace std;
int n,m,s,e;
int dis[405][405],g[405][405];
void floyd(){
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==k||i==j||j==k)continue;
				if(dis[i][k]+dis[k][j]<dis[i][j]){
					dis[i][j]=dis[i][k]+dis[k][j];
					dis[j][i]=dis[i][j];
				}
			}
		}
	}
}
int main(){
	cin>>n>>m>>s>>e;
	memset(dis,0x3f,sizeof(dis));
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		dis[x][y]=z;
		dis[y][x]=z;
	}
	floyd();
	cout<<dis[s][e]<<endl;
	return 0;
}


标签:memset,int,路径,iu,最短,问题,vis,push,sizeof
From: https://www.cnblogs.com/jzx1020/p/17606174.html

相关文章

  • 请问您在处理故障排除方面是否有经验?如果在Linux服务器上遇到问题,您会采取哪些步骤来
    一、服务器无法启动当你无法通过远程终端或物理控制台访问服务器时,可能是由于服务器无法启动造成的。这种情况下,你可以尝试以下几种方法:检查电源连接和供电情况,确保服务器有足够的电力供应。检查服务器硬件组件,如内存条和硬盘,确保它们没有松动或损坏。查看服务器启动日志,以......
  • 2014年工作中遇到的20个问题:141-160
    141.日期转换。//输入的时间为毫秒的准确时间//firstTime:1417139867916,lastTime:1419731867916publicstaticintgetDayBetweenTwoDate(longfirstTime,longlastTime){//当天的0点:1417104000000} 问题原因:firstCalendaStartTime-lastCalendaStartTime......
  • 【数据结构 | 入门】线性表与链表 (问题引入&实现&算法优化)
    ......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台优化设备通道视频播放出现跳屏的问题
    LntonGBS国标视频云服务支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格......
  • BOSHIDA 关于DC电源模块的噪音问题
    BOSHIDA关于DC电源模块的噪音问题BOSHIDADC电源模块是广泛使用的电源模块,它在各个领域中都有应用,例如:电子设备、计算机、通讯等领域。然而,DC电源模块也存在一些噪音问题,这些噪音问题会影响到电子设备的正常运行和使用,因此需要对这些问题进行深入了解,并找到相应的解决方法。 ......
  • 中企出海关心的多数据中心问题,答案在这里!
    数智化、绿色化、全球化是当今企业发展的三大潮流,其中全球化是中国企业发展的重要战略方向之一。面对新的国际环境,为了适应变化并进一步拓展更广阔的市场空间,许多中国领先企业正在加速出海,加快全球化经营的步伐。在这一过程中,中国企业需要强有力的企业数智化软件和服务支持,以提高全......
  • 数据分析师如何用SQL解决业务问题?
    本文来自问答。提问:数据分析人员需要掌握sql到什么程度?请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗?正文:作为专注数据分析结论/项目在业务落地以实现增长的分析师,建议在开始学习新技能前,先......
  • nginx权限问题failed(13Permission denied)
    由于要使用内网传输数据,便用了一台手机作为服务器进行内网穿透,但是在搭建的过程中,一直无法进入网页,网页上面只显示一个500错误。在排除不是uwsgi和python程序错误后,将目标锁定到了nginx上面。通过查看nginx日志,出现了failed(13:Permissiondenied)错误,发现是权限的问题,就将/etc/n......
  • 【现网事故】记一次多系统调用,并发冲突、请求放大导致的生产问题
    事故现象生产环境,转账相关请求失败量暴增。直接原因现网多个重试请求同时到达svr,导致内存数据库大量返回时间戳冲突。业务方收到时间戳冲突,自动进行业务重试,服务内部也存在重试,导致流量放大。转账首先我们一起了解一下转账。转账请求在支付场景中的应用频率非常高,它是现代金......
  • POE交换机常见几个问题
    问:哪些摄像机可以接POE交换机?答:符合IEEE802.3AF/AT标准的POE摄像机均可支持。如果不是POE摄像机,可以增加一个标准POE分线器来连接交换机与摄像机。问:摄像机白天正常,到晚上就没图像显示器黑屏?答:这是典型摄像机供电不足的情况,请确保你使用的网线是CAT5类或以上网线。建议用万......