题目翻译:
N个农场各一头奶牛(1头≤ N≤ 1000)方便编号的1..N将参加在农场#X(1≤ X≤ N)举行的大型奶牛派对 。共M(1),≤ M≤ 100000)单向道路连接两个农场;道路i需要Ti(1≤ Ti≤ 100)穿越的时间单位。
每头母牛都必须步行到聚会地点,聚会结束后返回农场。每头母牛都很懒,因此选择了一条时间最短的最佳路线。由于道路是单向的,因此母牛返回聚会地点的路线可能与原来的路线不同。
在所有的奶牛中,一头奶牛往返于派对的最长时间是多少?
输入
第1行:三个空格分隔的整数,分别为:N、M和X
第2..M+1行:第i+1行使用三个空格分隔的整数(Ai、Bi和Ti)描述道路i。所描述的道路从农场Ai到农场Bi,需要Ti时间单位来穿越。
输出
第1行:一个整数:任何一头牛必须行走的最长时间。
说人话,就是求每个点到固定点的最短路再加上固定点到此点的最短路的最大值
我们枚举每个点,跑迪杰,这道题就被爆切掉做完了
AC代码:
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<vector>
using namespace std;
struct edge{
int to,val;
edge(int t,int v