kuangbin专题专题四 Silver Cow Party POJ - 3268
题目链接: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的更多相关文章
- ShortestPath:Silver Cow Party(POJ 3268)
牛的聚会 题目大意:一群牛在一块农田的不同的点,现在他们都要去到同一个地方开会,然后现在从那个地方回到原来的位置,点与点之间的连线都是单向的,并且通过一个路径需要一定时间,问你现在哪只牛需要最多的时间 ...
- Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)
思路:有向图.假设在X牧场参加party,从X回家的时候,以X为起点,使用一次Dijkstra算法即可.难点在于去X参加party的最短路如何求解. 这时候我们可以反向建图,即把原来有向图的方向全部反 ...
- Silver Cow Party POJ - 3268
#include<iostream> #include<queue> #include<cstring> using namespace std; +,INF=0x ...
- DIjkstra(反向边) POJ 3268 Silver Cow Party || POJ 1511 Invitation Cards
题目传送门 1 2 题意:有向图,所有点先走到x点,在从x点返回,问其中最大的某点最短路程 分析:对图正反都跑一次最短路,开两个数组记录x到其余点的距离,这样就能求出来的最短路以及回去的最短路. PO ...
- [kuangbin带你飞]专题四 最短路练习 POJ 3268 Silver Cow Party
题意: 在一个有向图中求n头牛从自己的起点走到x再从x走回来的最远距离 思路一开始是暴力跑dij…… 讲道理不太可能…… 然后就百度了一下 才知道把矩阵转置的话就只需要求两次x的单源最短路…… /* ...
- 「kuangbin带你飞」专题十四 数论基础
layout: post title: 「kuangbin带你飞」专题十四 数论基础 author: "luowentaoaa" catalog: true tags: mathj ...
- POJ 3268 Silver Cow Party (双向dijkstra)
题目链接:http://poj.org/problem?id=3268 Silver Cow Party Time Limit: 2000MS Memory Limit: 65536K Total ...
- 开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/27068645 开发指南专题十四:J ...
- POJ 3268 Silver Cow Party (最短路径)
POJ 3268 Silver Cow Party (最短路径) Description One cow from each of N farms (1 ≤ N ≤ 1000) convenientl ...
随机推荐
- 16 个超级实用的 Java 工具类
阅读本文大概需要 4 分钟. 出处:alterem juejin.im/post/5d4a25b351882505c105cc6e 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用 ...
- 几句话总结一个算法之Policy Gradients
强化学习与监督学习的区别在于,监督学习的每条样本都有一个独立的label,而强化学习的奖励(label)是有延后性,往往需要等这个回合结束才知道输赢 Policy Gradients(PG)计算某个状 ...
- 常用war包插件
<build> <resources> <resource> <directory>src/main/java</directory> &l ...
- JConsole远程配置
JConsole是JDK自带的内存监控工具 1.linux配置tomcat-9.x 修改setenv.sh文件(默认没有的,需自己创建),增加配置: #!/bin/sh JAVA_HOME=/usr/ ...
- sql server数据表大小初始化
sql server表在存储大数据和处理大数据表时,经常会遇到表空间越来越大,有时候会超出应该占有空间大小很多,此时如果表数据是压缩存储的,那么重新执行一下压缩脚本,数据的大小会重新初始化,然后再使用 ...
- SharePoint - Another Way to Delete Site Collection
I had created a site collection. But there is a problem of web-frontend server (I did not know when ...
- maven 向私服部署jar
1.有源码的情况下 首先需要在要deploy的项目pom中添加私服地址 <distributionManagement> <repository> <id>nexu ...
- hanlp进行命名实体识别
需要安装jpype先,这个是python调用java库的桥梁. # -*- coding: utf-8 -*- """ Created on Thu May 10 09: ...
- 【剑指offer】数据流中的中位数
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值.我们 ...
- Java计算工作日的工具类
有时候需要根据工作日计算指定的日期,也就是需要排除周六日. 1. 初版代码如下: package cn.xm.exam.utils; import java.util.Calendar; impor ...