zoukankan      html  css  js  c++  java
  • 廉价最短路径

    题目描述
    图是由一组顶点和一组边组成的。一条边连接两个顶点。例如,图1表示了一个有4个顶点V、5条边的图。图中,每条边e是有方向的,方向从起点到终点,并且每条边都有价值。用整数0,1,…,m-1可以表示一个有m个顶点的图。

    在这里插入图片描述

    一条路径连接了一个点Vi和另一个点Vj,其方向与经过的一系列边的方向一致。路径的长度是途经边的条数,路径的费用是边价值的总和。对于一个给定的图,你的任务是在所有最短路径中,找出需要最少费用的连接V0和V1的路径。一个需要最少费用的最短路径称之为廉价最短路径。
    让我们重新考虑图1,从0到1的最短路径是只含一条边的路径0→1,费用是10。当然,还有更便宜的路:0→2→1和 0→3→1,但是它们比第一条路径长(有2条边)。所以,0→1是廉价最短路径。
    看一下另一个例子,图2,它有2条最短路径,其长度是2,路径0→3→1(费用=4)比路径0→2→1(费用=5)花费少。还用另一条路径0→2→3→1(费用=3),虽然便宜但是很长。所以,廉价最短路径是0→3→1。

    输入
    输入文件第一行有两个整数m和n,用一个空格隔开,其中,m是顶点数,而n是边数。接下来的n行给出所有的边及其价值,每行有3个整数(相邻两个整数间有一个空格),表示起点,终点和边的价值。顶点最多有100个,编号在0到99之间。边最多有1000条,其价值在0到2^15-1之间。
    输出
    输出文件仅有一行包含一个整数,即V0→V1的廉价最短路径的费用。当出现有多个廉价最短路径的情况时,它们的费用是一样的。
    输入样例
    4 5
    0 2 2
    0 3 2
    0 1 10
    2 1 2
    3 1 2

    输出样例
    10

    .
    .
    .
    .
    .
    分析
    将边数做权值跑最短路,在跑最短路的时候顺便记录当前路径的价值,若权值改变则价值也一定随之改变,若另一条路到当前节点的权值与现有路径权值相等,则判断哪条路的价值更小,记录价值。

    .
    .
    .
    .
    .
    程序:

    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int a[101][101],cost[101][101];
    
    int main()
    {
    
    	memset(a,0X3f,sizeof(a));
    	memset(cost,0X3f,sizeof(cost)); 
    	int n,m;
    	scanf("%d%d",&n,&m);
    	for (int i=1;i<=m;i++)
    	{
    		int x,y,z;
    		scanf("%d%d%d",&x,&y,&z);
    		a[x][y]=1;
    		cost[x][y]=z;
    	}
    	for (int k=0;k<=n-1;k++)
    		for (int i=0;i<=n-1;i++)
    			for (int j=0;j<=n-1;j++)
    				if (a[i][k]+a[k][j]<a[i][j])
    				{
    					a[i][j]=a[i][k]+a[k][j];
    					cost[i][j]=cost[i][k]+cost[k][j];
    				} else
    				if (a[i][j]==a[i][k]+a[k][j]&&cost[i][j]>cost[i][k]+cost[k][j])
    				{
    					a[i][j]=a[i][k]+a[k][j];
    					cost[i][j]=cost[i][k]+cost[k][j];
    				}
    	printf("%d",cost[0][1]);
    
    	return 0;
    }
    
  • 相关阅读:
    第六节:Redis Cluster搭建详解和集群运维(节点、槽位等)
    第七节:Nginx限流和负载均衡、页面cdn、IIS部署优化、后续计划
    第十五节:CAP框架简介和基于CAP实现微服务的事件总线
    【ML】异常点检测
    【产品挖坟】360口信
    【产品】张小龙8小时
    【产品】书单
    【产品】网易云音乐-王诗沐
    【产品思维】拼多多为什么崛起?
    【思考】社交本质
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094939.html
Copyright © 2011-2022 走看看