zoukankan      html  css  js  c++  java
  • POJ 3268

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<string.h>
    using namespace std;
    
    const int maxn=1005;
    const int inf = 0x3f3f3f3f;
    int mapp[maxn][maxn];
    int dis[maxn],diss[maxn];
    int vis[maxn],viss[maxn];
    int sum[maxn];
    int a,b,c,n,m,x;
    int minx;
    
    
    void dijkstra1(int x)
    {
    	for(int i=1;i<=n;i++)
    	{
    		dis[i]=mapp[x][i];
    	}
    	
    	for(int i=0;i<n;i++)
    	{
    		int k=0;
    		int minx=inf;
    		for(int j=1;j<=n;j++)
    		{
    			if(!vis[j]&&minx>dis[j])
    			{
    				minx=dis[j];
    				k=j;
    			}
    		}
    		vis[k]=1;
    		for(int j=1;j<=n;j++)
    		{
    			if(!vis[j]&&dis[j]>dis[k]+mapp[k][j])
    			{
    				dis[j]=dis[k]+mapp[k][j];
    			}
    		}
    	}
    }
    
    void dijkstra2(int x)
    {
    	for(int i=1;i<=n;i++)
    	{
    		diss[i]=mapp[i][x];
    	}
    	
    	for(int i=0;i<n;i++)
    	{
    		int k=0;
    		int minx=inf;
    		for(int j=1;j<=n;j++)
    		{
    			if(!viss[j]&&minx>diss[j])
    			{
    				minx=diss[j];
    				k=j;
    			}
    		}
    		viss[k]=1;
    		for(int j=1;j<=n;j++)
    		{
    			if(!viss[j]&&diss[j]>diss[k]+mapp[j][k])
    			{
    				diss[j]=diss[k]+mapp[j][k];
    			}
    		}
    	}
    }
    int main()
    {
    	scanf("%d %d %d",&n,&m,&x);
    	memset(mapp,inf,sizeof(mapp));
    	memset(vis,0,sizeof(vis));
    	memset(dis,0,sizeof(dis));
    	memset(diss,0,sizeof(diss));
    	memset(viss,0,sizeof(viss));
    	memset(sum,0,sizeof(sum));
    	for(int i=0;i<m;i++)
    	{
    		scanf("%d %d %d",&a,&b,&c);
    		mapp[a][b]=c;
    	}
    	dijkstra1(x);
    	dijkstra2(x);
    
    	for(int i=1;i<=n;i++)
    	{	
    		if(x==i)
    			continue;
    		sum[i]=dis[i]+diss[i];
    	}
    	sort(sum+1,sum+n+1);
    	printf("%d
    ",sum[n]);
    	return 0;
    }
    
  • 相关阅读:
    ACM Dance Recital(dfs+剪枝)
    矩阵快速幂
    分页实现复选框的选中状态
    MemCached 和redis的区别
    调用存储过程传值
    实现js中的时间格式中的T
    实现下载完成
    模态框实现功能后刷新父类页面
    JSON.parse()、JSON.stringify()和eval()的作用
    全选反选珍藏班版
  • 原文地址:https://www.cnblogs.com/tianming1/p/13778723.html
Copyright © 2011-2022 走看看