$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 ;
}
随机推荐
- Diango REST framework 视图继承图
- MFC 多行文本显示心得
最近在利用MFC做端口扫描器实验,其中涉及CString.char.int等之间的转换.文本框的多行显示问题.总是显示底层最新结果等问题,下面写一些我总结的相关方法. 一.CString 转 cha ...
- Laravel5.5 综合使用
使用 Laravel5.5 开发一个自动交割的项目,把使用到的开源扩展包及特性整理起来,以供后续使用. 一.安装IDE提示工具 Laravel IDE Helper 是一个极其好用的代码提示及补全工具 ...
- Spring MVC学习总结(11)——Spring MVC集成Swagger跨域问题
<!-- CORS配置,为了让别的机器访问本机的swagger接口文档服务 --> <dependency> <group ...
- 使用lombok提高编码效率-----不用写get set
使用lombok提高编码效率-----不用写get set https://blog.csdn.net/v2sking/article/details/73431364
- 关于字符串不为空 错误:s!=null
错误:s!=null 正确:StringUtils.isNotBlank(s); public static boolean isBlank(CharSequence cs) { int strLen ...
- [luoguP1403] [AHOI2005]约数研究(这。。。)
传送门 用类似筛法的原理,就好啦 ——代码 #include <cstdio> int n, ans; int a[1000001]; int main() { int i, j; sca ...
- android安卓程序源码---高仿微信源码
先截几张图: 部份源代码如下所示: package cn.buaa.myweixin; import java.util.ArrayList; import android.os.Bundle; im ...
- [bzoj1040][ZJOI2007]骑士(环套树DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1040 分析:第一感觉肯定是树形DP,但可惜不是树.仔细分析,这个图很特殊,每个联通块肯 ...
- Ubuntu 16.04错误:The update information is outdated this may be caused by network...的问题解决
说明:这个问题没有最终的解决方案,只有不断的尝试. 错误: The update information is outdated this may be caused by network probl ...