$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 ;
}
随机推荐
- this与const
在普通非const成员函数中,this是const指针,而在const成员函数中,this是const对象的const指针. class Foo { Foo& get_self1(void) ...
- 洛谷 3398 仓鼠找sugar 【模板】判断树上两链有交
[题解] 题意就是判断树上两条链是否有交.口诀是“判有交,此链有彼祖”.即其中一条链的端点的Lca在另一条链上. 我们设两条链的端点的Lca中深度较大的为L2,对L2与另一条链的两个端点分别求Lca, ...
- Codeforces Educational Codeforces Round 17 Problem.A kth-divisor (暴力+stl)
You are given two integers n and k. Find k-th smallest divisor of n, or report that it doesn't exist ...
- java8 新特性 lambda过滤
1. 定义实体类 package com.atguigu.java8; public class Employee { private int id; private String name; pri ...
- Spring MVC学习总结(8)——Swagger入门详解
前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...
- [luoguP2486] [SDOI2011]染色(树链剖分)
传送门 就是个模板啦 记录每一个点的左端点颜色和右端点颜色和当前端点颜色段数. 合并时如果左孩子右端点和右孩子左端点不同就 ans-- 在重链上跳的时候别忘记统计一下 ——代码 #include &l ...
- Codeforces 314B(倍增)
题意:[a,b]表示将字符串a循环写b遍,[c,d]表示把字符串c循环写d遍,给定a,b,c,d,求一个最大的p,使得[[c,d],p]是[a,b]的子序列(注意不是子串,也就是不要求连续).(b,d ...
- Spring Boot在开发时实现热部署(开发时修改文件保存后自动重启应用)(spring-boot-devtools)
热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各 ...
- Hive之单独部署机器
环境说明 CentOS7,hadoop-2.6.5,hive-1.2.2,MariaDB-5.5.60,jdk-1.8 假设hive机已经安装好了MariaDB(已启动且已创建好hive账号,对hiv ...
- ftk学习记(输入框篇)
[ 声明:版权全部.欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 昨天讲了进度条,我们还是看看它的运行效果是怎么样的.截图例如以下, 进度条使用的情况还是比較多的 ...