传送门

解题思路

  \(floyd\)的变形版,首先要求的是经过的点中所有点最大的,那么我们就按照点权来排序。这样的话每次我们枚举的中转点\(k\)是单调递增的,所以每次的最大值一定是\(i,j,k\)其中一个。最好记两个数组,一个带点权一个不带点权,这样比较好写。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>using namespace std;
const int MAXN = 255;inline int rd(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();}while(isdigit(ch))  {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return f?x:-x;
} int n,m,q,f[MAXN][MAXN],a[MAXN],g[MAXN][MAXN];
struct Data{int w,id;
}data[MAXN];inline bool cmp(Data A,Data B){return A.w<B.w;
}int main(){memset(f,0x3f,sizeof(f));memset(g,0x3f,sizeof(g));n=rd();m=rd();q=rd();int x,y,z; for(int i=1;i<=n;i++) data[i].w=rd(),data[i].id=i,f[i][i]=0;sort(data+1,data+1+n,cmp);for(int i=1;i<=n;i++) a[data[i].id]=i;for(int i=1;i<=m;i++){x=rd(),y=rd(),z=rd();f[a[x]][a[y]]=f[a[y]][a[x]]=min(f[a[x]][a[y]],z);}for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(i==j) continue;f[i][j]=min(f[i][j],f[i][k]+f[k][j]);g[i][j]=min(g[i][j],f[i][j]+max(data[k].w,max(data[i].w,data[j].w)));}
//  for(int i=1;i<=n;i++)
//      for(int j=1;j<=n;j++) cout<<a[i]<<" "<<a[j]<<" "<<g[a[i]][a[j]]<<endl;while(q--){x=rd(),y=rd();                           printf("%d\n",g[a[x]][a[y]]);}return 0;
}

转载于:https://www.cnblogs.com/sdfzsyq/p/9791695.html

LUOGU P2966 [USACO09DEC]牛收费路径Cow Toll Paths相关推荐

  1. 【[USACO09DEC]牛收费路径Cow Toll Paths】

    很妙的一道题,我之前一直是用一个非常暴力的做法 就是枚举点权跑堆优化dijkstra 但是询问次数太多了 于是一直只有50分 今天终于抄做了这道题,不贴代码了,只说一下对这道题的理解 首先点权和边权不 ...

  2. Cow Toll Paths(floyd变形)

    链接:https://ac.nowcoder.com/acm/contest/1077/K 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  3. USACO 2009 Dec cow toll paths 过路费-floyd

    这道题首先要明确一点,那就是当你从一个点走到自己时,也是需要花费这个点点权值的费用.这个点卡了我两次QWQ 然后我比较喜欢分两步搞: 首先,我们利用floyd的一个性质:就是在更新其他点之间的路线时要 ...

  4. 信息学奥赛一本通 1343:【例4-2】牛的旅行 | 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours

    [题目链接] ybt 1343:[例4-2]牛的旅行 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours [题目考点] 1. 图论 最短路径 Floyd算法 Floyd算法时间复杂度 ...

  5. P3033 [USACO11NOV]牛的障碍Cow Steeplechase

    P3033 [USACO11NOV]牛的障碍Cow Steeplechase 题目描述 详见:P3033 [USACO11NOV]牛的障碍Cow Steeplechase solution 裸题. 对 ...

  6. 题解 洛谷 P3069 [USACO13JAN]牛的阵容Cow Lineup

    洛谷P3069[USACO13JAN]牛的阵容CowLineup\color{#00F}{洛谷\ P3069\ [USACO13JAN]牛的阵容Cow Lineup}洛谷 P3069 [USACO13 ...

  7. 脏牛(Dirty COW)漏洞攻击实验(SEED-Lab:Dirty-COW Attack Lab)

    <脏牛(Dirty COW)漏洞攻击实验> 目录 <脏牛(Dirty COW)漏洞攻击实验> **一:实验目的** **二:实验步骤与结果** **漏洞原理:** **COW机 ...

  8. [LUOGU] P2886 [USACO07NOV]牛继电器Cow Relays

    https://www.luogu.org/problemnew/show/P2886 给定无向连通图,求经过k条边,s到t的最短路 Floyd形式的矩阵乘法,同样满足结合律,所以可以进行快速幂. 离 ...

  9. Luogu P3014 [USACO11FEB]牛线Cow Line

    题目链接:传送门 康托展开模板 不了解的去找资料自学 很好入手 #include <iostream> #include <cstdio> #include <cstri ...

最新文章

  1. OpenAI新研究:扩散模型在图像合成质量上击败BigGAN,多样性还更佳
  2. C++程序设计基础(8)main函数
  3. 第四周实践项目5 猴子选大王(循环链表)
  4. JS版数据结构第三篇(链表)
  5. vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用
  6. 数据库事务转载基础一:oarcle事务
  7. 手机两列布局,正方形
  8. [html] 写html代码时,怎样才加速写代码的速度呢?你有什么方法?
  9. c语言常考的程序,复试C语言常考趣味程序方案.doc
  10. 二叉树经典题之二叉树最近公共祖先(LeetCode)
  11. 永磁同步电机矢量控制中的双闭环是什么意思_三菱伺服控制器与变频器区别,三菱伺服控制器优势在哪?...
  12. 将数据加载到datagridview_JVM系列(一)-- Java类的加载机制
  13. Java实现的各种排序算法
  14. CentOS8下vi编辑器常用命令
  15. 樊登读书分享ppt_最后一波 | 24份樊登亲手撰写PPT免费送
  16. c++ 11/14新特性
  17. 前后端交互、Node、npm、Express、mysql基础
  18. python环境下skimage处理高通道tif图片(10通道)
  19. 【网上订机票安全吗?网上订机票防止被骗妙招】
  20. CMW500注网问题

热门文章

  1. VC++屏幕抓词的技术实现
  2. DataGrid中页导航栏的自定义样式
  3. Windows不能识别环境变量的原因。
  4. 关于程序员就业岗位及岗位市场的思考
  5. import java.util.calendar_Java.util.Calendar.setTimeInMillis()
  6. oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
  7. 038_Steps步骤条
  8. 百度商桥修改服务器,百度商桥 · 响应式网站编辑器使用手册 · 看云
  9. win8 查看 linux硬盘大小,如何查看显存大小_win8如何查看显存大小
  10. linux命令上常用命令