题目链接:https://vjudge.net/problem/POJ-3268

题意:点X处开办排队,其他点的牛到X点去参加派对,然后从X点回到各自的点,通路是单向的,所有牛都要走最短路,

求出所有牛走的最短路中最长的那条路。

(直接看代码吧,就是一处改一下,别的和dijkstra板子差不多)


 #include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string>
using namespace std; typedef long long LL;
#define inf (1LL << 30) - 1
#define rep(i,j,k) for(int i = (j); i <= (k); i++)
#define rep__(i,j,k) for(int i = (j); i < (k); i++)
#define per(i,j,k) for(int i = (j); i >= (k); i--)
#define per__(i,j,k) for(int i = (j); i > (k); i--) const int N = ;
int G[N][N];
bool vis[N];
int dis1[N];
int dis2[N];
int u,v,w;
int n,m,X; void init(){ rep(i,,n) vis[i] = false;
rep(i,,n) rep(j,,n){
if(i == j) G[i][j] = ;
else G[i][j] = inf;
}
} void input(){ rep(i,,m){
cin >> u >> v >> w;
if(G[u][v] > w) G[u][v] = w;
}
} void dijkstra(){ //////////////////////////////////////////////////////////
//(1)第一部分
rep(i,,n) dis1[i] = G[i][X]; //dis[]存的是其他城市到X点的最短距离
vis[X] = true; rep(i,,n){ int x = -;
int w = inf; rep(j,,n){
if(!vis[j] && w > dis1[j]) w = dis1[x = j];
}
if(x == -) continue; vis[x] = true;
rep(k,,n){
//如果k点到X点的距离 大于 k点到x点的距离加上x到X点的距离 那么更新dis[]数组
if(!vis[k] && dis1[k] > dis1[x] + G[k][x]){
dis1[k] = dis1[x] + G[k][x];
}
}
} // rep(i,1,n) cout << dis1[i] << endl; ////////////////////////////////////////////////////////////
//(2)第二部分 就是一模一样的dijkstra板子
rep(i,,n) vis[i] = false;
rep(i,,n) dis2[i] = G[X][i];
vis[X] = true; rep(i,,n){
int x = -;
int w = inf; rep(j,,n){
if(!vis[j] && w > dis2[j]) w = dis2[x = j];
} if(x == -) continue; vis[x] = true;
rep(k,,n){
if(!vis[k] && dis2[k] > dis2[x] + G[x][k]){
dis2[k] = dis2[x] + G[x][k];
}
}
}
int ans = ; //把来回的路线加起来,选出最长的那个来回,就是答案
rep(i,,n) if(i != X) ans = max(ans, dis1[i]+ dis2[i]); cout << ans << endl;
} int main(){ ios::sync_with_stdio(false);
cin.tie(); cin >> n >> m >> X; init();
input();
dijkstra(); getchar();getchar();
return ;
}

kuangbin专题专题四 Silver Cow Party POJ - 3268的更多相关文章

  1. ShortestPath:Silver Cow Party(POJ 3268)

    牛的聚会 题目大意:一群牛在一块农田的不同的点,现在他们都要去到同一个地方开会,然后现在从那个地方回到原来的位置,点与点之间的连线都是单向的,并且通过一个路径需要一定时间,问你现在哪只牛需要最多的时间 ...

  2. Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)

    思路:有向图.假设在X牧场参加party,从X回家的时候,以X为起点,使用一次Dijkstra算法即可.难点在于去X参加party的最短路如何求解. 这时候我们可以反向建图,即把原来有向图的方向全部反 ...

  3. Silver Cow Party POJ - 3268

    #include<iostream> #include<queue> #include<cstring> using namespace std; +,INF=0x ...

  4. DIjkstra(反向边) POJ 3268 Silver Cow Party || POJ 1511 Invitation Cards

    题目传送门 1 2 题意:有向图,所有点先走到x点,在从x点返回,问其中最大的某点最短路程 分析:对图正反都跑一次最短路,开两个数组记录x到其余点的距离,这样就能求出来的最短路以及回去的最短路. PO ...

  5. [kuangbin带你飞]专题四 最短路练习 POJ 3268 Silver Cow Party

    题意: 在一个有向图中求n头牛从自己的起点走到x再从x走回来的最远距离 思路一开始是暴力跑dij…… 讲道理不太可能…… 然后就百度了一下 才知道把矩阵转置的话就只需要求两次x的单源最短路…… /* ...

  6. 「kuangbin带你飞」专题十四 数论基础

    layout: post title: 「kuangbin带你飞」专题十四 数论基础 author: "luowentaoaa" catalog: true tags: mathj ...

  7. POJ 3268 Silver Cow Party (双向dijkstra)

    题目链接:http://poj.org/problem?id=3268 Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total ...

  8. 开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/27068645   开发指南专题十四:J ...

  9. POJ 3268 Silver Cow Party (最短路径)

    POJ 3268 Silver Cow Party (最短路径) Description One cow from each of N farms (1 ≤ N ≤ 1000) convenientl ...

随机推荐

  1. [300iq Contest 1-D]Dates

    传送门 Description 每个妹子匹配一个时间区间,每个时间最多选择\(a_i\)个妹子,每个妹子有一个快乐值,最大化总快乐值 Solution 贪心,从大往小取,能取则取 判断是否可以有完美匹 ...

  2. C/C++中书写汇编指令

    汇编语言的指令格式目前有两种不同的标准:Windows下的汇编语言基本上都遵循Intel风格的语法,比如:MASM.NASM,Unix/Linux下的汇编语言基本上都遵循AT&T风格的语法. ...

  3. 【操作系统之九】Linux常用命令之netstat

    一.概念netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP ...

  4. k8s之发布管理架构图01

    k8s发布管理所用到的组件

  5. Maven 教程(6)— Maven之pom.xml文件简单说明

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79543963 通过前面几部分知识,我们对maven已经有了初步的印象,就像Mak ...

  6. flume安装使用+根据数据源分类

    安装搭建: 1)解压下载的flume(安装jdk1.6及其以上) 2)在conf文件夹里面建立example.conf文件 #example.conf:单节点Flume配置 #命名Agent a1的组 ...

  7. 线程互斥synchronized

    /** * * 线程互斥,采用synchronized关键字可以实现线程与线程之间的互斥,要注意的是在synchronized上的对象要是同一个,才可以 * 保证在同一时刻,只有一个线程可以执行syn ...

  8. [转帖]java注解核心知识总结

    java注解核心知识总结 2019-11-01 20:39:50 从事Java 阅读数 2  收藏 文章标签: java注解总结程序员 更多 分类专栏: java 注解   版权声明:本文为博主原创文 ...

  9. [转帖]【mount】Linux根目录空间不足

    [mount]Linux根目录空间不足 2019.04.15 21:30:47字数 1094阅读 107 一.问题背景 一台数据库服务器,突然监控告警,报根目录空间不足(no space left o ...

  10. 宝塔webhook配合码云,本地git push 服务器自动pull

    emmmm,这其实是一个很简单的一件事情,但是有很多坑,记录一下 先大概讲一下原理吧,就是每次您 push 代码后,都会给远程 HTTP URL 发送一个 POST 请求 更多说明 » 然后在宝塔这边 ...