传送门啦

倍增 $ Floyd $

注意结构体里二维数组不能开到 $ 2000 $

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define Re register
using namespace std; inline int read(){
char ch = getchar();
int f = 1 , x = 0;
while(ch > '9' || ch < '0') {if(ch == '-' ) f = -1 ; ch = getchar();}
while(ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + ch - '0' ; ch = getchar();}
return x * f;
} long long n,tot,m,s,t,x,y,z;
long long vis[20050],cnt;
long long w[2050][2050]; struct node{
long long f[205][205];
node() {
memset(f , 0x3f , sizeof(f)) ;
}
}ans ; node mul(node a , node b) {
node res ;
for(Re int k = 1 ; k <= tot ; ++k)
for(Re int i = 1 ; i <= tot ; ++i)
for(Re int j = 1 ; j <= tot ; ++j)
if(res.f[i][j] > a.f[i][k] + b.f[k][j])
res.f[i][j] = a.f[i][k] + b.f[k][j];
return res;
} inline long long quick_power(long long k){
node res ;
for(Re int i = 1 ; i <= tot ; ++i)
res.f[i][i] = 0;
while(k) {
if(k & 1) res = mul(res , ans);
ans = mul(ans , ans ) ;
k >>= 1;
}
return res.f[vis[s]][vis[t]] ;
} int main(){
n = read(); m = read(); s = read(); t = read();
for(Re int i = 1 ; i <= m ; ++i) {
z = read() ; x = read() ; y = read() ;
if(!vis[x]) vis[x] = ++tot;
if(!vis[y]) vis[y] = ++tot;
ans.f[vis[x]][vis[y]] = ans.f[vis[y]][vis[x]] = min(ans.f[vis[x]][vis[y]] , z) ;
}
printf("%lld\n" , quick_power(n));
return 0;
}

洛谷P2886牛继电器的更多相关文章

  1. 洛谷 [P2886] 牛继电器Cow Relays

    最短路 + 矩阵快速幂 我们可以改进矩阵快速幂,使得它适合本题 用图的邻接矩阵和快速幂实现 注意 dis[i][i] 不能置为 0 #include <iostream> #include ...

  2. [洛谷P2886] 牛继电器Cow Relays

    问题描述 For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race ...

  3. 洛谷P2886 [USACO07NOV]牛继电器Cow Relays

    题意很简单,给一张图,把基本的求起点到终点最短路改成求经过k条边的最短路. 求最短路常用的算法是dijkstra,SPFA,还有floyd. 考虑floyd的过程: c[i][j]=min(c[i][ ...

  4. 洛谷 P2886 [USACO07NOV]牛继电器Cow Relays

    题面 解题思路 ## floyd+矩阵快速幂,跟GhostCai爷打赌用不用离散化,最后完败..GhostCai真是tql ! 有个巧妙的方法就是将节点重新编号,因为与节点无关. 代码 #includ ...

  5. 洛谷银牛派对SPFA

    题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...

  6. 洛谷P1522 牛的旅行 Cow Tours

    ---恢复内容开始--- P1522 牛的旅行 Cow Tours189通过502提交题目提供者该用户不存在标签 图论 USACO难度 提高+/省选-提交该题 讨论 题解 记录 最新讨论 输出格式题目 ...

  7. 【Luogu】P2886牛继电器(矩阵加速floyd)

    题目链接 矩阵加速floyd……牛逼牛逼. 注意离散化,注意更新的时候要用旧的权值矩阵更新. #include<cstdio> #include<cstring> #inclu ...

  8. 洛谷 P1522 牛的旅行 Cow Tours 题解

    P1522 牛的旅行 Cow Tours 题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧区通过任何路径都不 ...

  9. 洛谷P1565 牛宫

    题目描述 AP 神牛准备给自己盖一座很华丽的宫殿.于是,他看中了一块N*M 的矩形空地. 空地中每个格子都有自己的海拔高度.AP 想让他的宫殿的平均海拔在海平面之上(假设 海平面的高度是0,平均数都会 ...

随机推荐

  1. java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列

    ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它会返回队列头 ...

  2. bzoj2961&&bzoj4140 共点圆

    题目描述 在平面直角坐标系中,Wayne需要你完成n次操作,操作只有两种: 1.0 x y.表示在坐标系中加入一个以(x, y)为圆心且过原点的圆. 2.1 x y.表示询问点(x, y)是否在所有已 ...

  3. 【bzoj2938】【Poi2000】病毒

    题解: 对病毒串建立ac自动机: 有一个无限长的串等价于可以一直在自动机上匹配,等价于自动机上的转移有环: 当然前提是去掉病毒节点的fail子树: 写一个dfs记录是否在栈中,来过没有找到就不必再来了 ...

  4. 【agc019F】Yes or No

    Portal -->agc019F Description 给你\(n+m\)个询问,其中\(n\)个的答案是\(Yes\),\(m\)个的答案是\(No\),现在依次回答这些询问,每回答一个询 ...

  5. winscp以命令行方式同步服务器数据到PC机磁盘上

    目前服务器上每日会产生备份文件,需要使用winscp工具把备份同步到本地PC机硬盘上.平时都是图形界面用鼠标点击方式来同步的,效率低下,因此编写了winscp自动同步脚本,并加入到计划任务中定时自动运 ...

  6. pyqt5的代码

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. 即时通信系统Openfire分析之二:主干程序分析

    引言 宇宙大爆炸,于是开始了万物生衍,从一个连人渣都还没有的时代,一步步进化到如今的花花世界. 然而沧海桑田,一百多亿年过去了…. 好复杂,但程序就简单多了,main()函数运行,敲个回车,一行Hel ...

  8. C++函数不能为virtual的场景

    1.类函数不能同时被static和virtual修饰. 2.类的模板函数不能被virtual修饰 未完待续

  9. 哈密顿图 哈密顿回路 哈密顿通路(Hamilton)

    本文链接:http://www.cnblogs.com/Ash-ly/p/5452580.html 概念: 哈密顿图:图G的一个回路,若它通过图的每一个节点一次,且仅一次,就是哈密顿回路.存在哈密顿回 ...

  10. CloseableHttpClient与 CloseableHttpResponse应用

    最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有 ...