$P2935 [USACO09JAN]最好的地方Best Spot$
P2935 [USACO09JAN]最好的地方Best Spot

Floyd的水题(黄题)
海星。
这可能是我第一道发的Floyd的博客
inline void Floyd(){
for(register int k=;k<=n;k++)
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++) dis[i][j]=Min(dis[i][j],dis[i][k]+dis[k][j]);
}
这个是Floyd的算法
很简单就三行 仅此而已
但是 这个是一种方法
简单的说 Floyd是一种DP 求最短路(最长路)反正比spfa啥的好打
最关键就是时间复杂度比较高 高达N^3 所以没几道题用的到Floyd 反而多的是求正负环的spfa dijkstra
不说那么多了
见代码
#include <bits/stdc++.h>
#define Min(a,b) a<b?a:b
using namespace std;
typedef long long LL;
inline LL read () { LL res = ;int f () ;char ch = getchar ();
while (!isdigit(ch)) { if (ch == '-') f = - ;ch = getchar();}
while (isdigit(ch)) res = (res << ) + (res << ) + (ch ^ ) ,ch = getchar(); return res * f ;
}
LL n,m,p;
LL l[+];
LL dis[+][+];
const LL Inf=0x3f3f3f3fLL;
inline void Init(){
for(register int i=;i<=n;i++){
for(register int j=;j<=n;j++) dis[i][j]=Inf;
dis[i][i]=;
}
}
inline void Floyd(){
for(register int k=;k<=n;k++)
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++) dis[i][j]=Min(dis[i][j],dis[i][k]+dis[k][j]);
}
signed main () {
n=read(),p=read(),m=read();
Init();
for(register int i=;i<=p;i++) l[i]=read();
for(register int i=;i<=m;i++) {
LL u=read(),v=read();
dis[u][v]=dis[v][u]=read();
}
Floyd();
LL sum,ans,cnt=Inf;
for(register int i=;i<=n;i++){
sum=0LL;
for(register int j=;j<=p;j++) sum+=dis[i][l[j]];
if(sum<cnt) cnt=sum,ans=i;
}
cout << ans << endl ;
return ;
}
随机推荐
- 洛谷 2777 [AHOI2016初中组]自行车比赛
[题解] 为了让某个选手能够获得总分第一,就让他最后一天的得分是n,并且让别的选手的得分的最大值尽量小.于是我们先把目前积分排序,并且让他们最后一天的排名刚好与积分排名相反.即某个积分排名为X的人最后 ...
- 【OpenCV, C++】实现向下光栅追踪检测边缘
设计函数如下: 其中 void gratingdetect(Mat &graysrc, Mat &graydst, int high, int low); 参数列表中,第一项是输入的灰 ...
- 【Codeforces 924C】Riverside Curio
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 设第i天总共的线数为t[i] 水平线上线数为m[i]是固定的 水平线下的线数设为d[i] 则d[i]+m[i]+1=t[i] 也就是说问题可以 ...
- 转载 - Python里面关于 模块 和 包 和 __init__.py 的一些事
出处:http://www.cnblogs.com/tqsummer/archive/2011/01/24/1943273.html python中的Module是比较重要的概念.常见的情况是,事先写 ...
- js中防止输入为空,或者为字母
function checkNum(){ var num1=document.getElementById("num1").value; var num2=document.get ...
- 进入DRF和ANGULAR的整合学习,这三篇入门内容一定要学好的
看来,DJANGO的模板功能是无法用啦, 学着用ANGLUAR的SERVICE,MODULE,CONTROLLER啦... http://engineroom.trackmaven.com/blog/ ...
- Ubuntu 16.04安装Bless十六进制编辑器
一款专注于十六进制的编辑器. 安装: sudo apt-get install bless 启动:
- Spark之安装和使用
Scala安装 Spark使用Scala开发,安装的Scala版本必须和Spark使用的版本一致,否则使用Scala编写的Spark任务会有兼容性问题 可以到Spark官网查看确定Scala版本,或者 ...
- 1. MissingInteger 最小遗失整数 Find the minimal positive integer not occurring in a given sequence.
package com.code; import java.util.Arrays; public class Test04_1 { public static int solution(int[] ...
- swift 2.0 语法 可选类型
import UIKit /*: 可选类型(可以有值, 也可以没有值) * 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift中如果想给一个变量赋值为nil那么必须明确指定为 ...