题面

解题思路 ##

floyd+矩阵快速幂,跟GhostCai爷打赌用不用离散化,最后完败。。GhostCai真是tql !

有个巧妙的方法就是将节点重新编号,因为与节点无关。

代码

#include<bits/stdc++.h>

using namespace std;
const int MAXN = 1005; int n,t,s,e;
int edge[MAXN][MAXN];
int num[MAXN],tot; struct Mat{
int a[105][105];
Mat operator*(const Mat &h){
Mat c;
memset(c.a,0x3f,sizeof(c.a));
for(register int k=1;k<=tot;k++)
for(register int i=1;i<=tot;i++)
for(register int j=1;j<=tot;j++)
c.a[i][j]=min(c.a[i][j],a[i][k]+h.a[k][j]);
return c;
}
}dis,ans; inline void fast_pow(Mat x,int y){
for(;y;y>>=1){
if(y&1) dis=dis*x;
x=x*x;
}
} int main(){
ios::sync_with_stdio(0);
memset(dis.a,0x3f,sizeof(dis.a));
cin>>n>>t>>s>>e;
for(register int i=1;i<=t;i++){
int a,b,c;
cin>>a>>b>>c;
if(!num[c]) num[c]=++tot;
if(!num[b]) num[b]=++tot;
dis.a[num[c]][num[b]]=dis.a[num[b]][num[c]]=a;
}
ans=dis;
fast_pow(ans,n-1);
cout<<dis.a[num[s]][num[e]]<<endl;
return 0;
}

洛谷 P2886 [USACO07NOV]牛继电器Cow Relays的更多相关文章

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

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

  2. P2886 [USACO07NOV]牛继电器Cow Relays

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

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

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

  4. [USACO07NOV]牛继电器Cow Relays (最短路,DP)

    题目链接 Solution 非正解 似乎比较蛇啊,先个一个部分分做法,最短路+\(DP\). 在求最短路的堆或者队列中存储元素 \(dis_{i,j}\) 代表 \(i\) 这个节点,走了 \(j\) ...

  5. luogu题解 P2886 【牛继电器Cow Relays】-经过K边最短路&矩阵

    题目链接: https://www.luogu.org/problemnew/show/P2886 Update 6.16 最近看了下<算法导论>,惊奇地发现在在介绍\(APSP\) \( ...

  6. [USACO07NOV]牛继电器Cow Relays

    题目描述 给出一张无向连通图,求S到E经过k条边的最短路. 输入输出样例 输入样例#1: 2 6 6 4 11 4 6 4 4 8 8 4 9 6 6 8 2 6 9 3 8 9 输出样例#1: 10 ...

  7. Luogu 2886 [USACO07NOV]牛继电器Cow Relays

    BZOJ 1706权限题. 倍增$floyd$. 首先这道题有用的点最多只有$200$个,先离散化. 设$f_{p, i, j}$表示经过$2^p$条边从$i$到$j$的最短路,那么有转移$f_{p, ...

  8. [luoguP2886] [USACO07NOV]牛继电器Cow Relays(矩阵)

    传送门 矩阵快速幂,本质是floyd 把 * 改成 + 即可 注意初始化 因为只有100条边,所以可以离散化 #include <cstdio> #include <cstring& ...

  9. 洛谷P3045 [USACO12FEB]牛券Cow Coupons

    P3045 [USACO12FEB]牛券Cow Coupons 71通过 248提交 题目提供者洛谷OnlineJudge 标签USACO2012云端 难度提高+/省选- 时空限制1s / 128MB ...

随机推荐

  1. 2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖

    近日,亚太CDN产业联盟主办的2019亚太内容分发大会在上海召开.本次大会以"5G分发"为主题,集结了CDN领域近千名行业领袖.专家参与.在会上,阿里云斩获“CDN领袖奖”.“技术 ...

  2. AFO成功

    在dcoi一年多,还是发生了不少事情. 过程中也有些小遗憾,有做错的事情,有搞砸的事情,有没办法挽回的事情,这种没法读档的辣鸡游戏也是无可奈何的.对所有被我搞砸的事情说声对不起啦,至少在下一次的时候, ...

  3. H5 小代码(实时更新)

    :before { content: ''; display: inline-block; vertical-align: middle; height: %; } ↑  自适应垂直居中 .clear ...

  4. c# 中Linq Lambda 的ToLookup方法的使用

    同样直接上代码: List<Student> ss = new List<Student>(); Student ss1 = , Age = , Name = " } ...

  5. work-record:20190618

    ylbtech-work-record:20190618 1.返回顶部 1.1. -- formId记录表 -- select * from record_form_id; -- drop table ...

  6. day 65 Django基础之django分页

      Django基础之django分页   一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...

  7. js文件操作之——导出Excel (js-xlsx)

    前阵子跟server同学讨论一个Excel导出的需求,我说JS搞不定,需要server来做,被server同学强行打脸. 今天研究了下,尼玛,不光可以,还很强大了! 总结:经验是害人的,尤其是在发展迅 ...

  8. layui表格监听开关并获取改行id

    ,{field:'sex', title:'性别', width:85, templet: '#switchTpl', unresize: true} <script type="te ...

  9. 洛谷P3834【模板】可持久化线段树 1(主席树)

    题目背景 这是个非常经典的主席树入门题--静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输 ...

  10. SaltStack远程执行Windows job程序(黑窗口)填坑经过

    近期接到领导通知,要将公司内的所有Windows服务添加到自动发布系统中,由于这种服务很多,节点分布散乱,每次都是由开发主管手动替换(虽然他们自己开发了自动打包替换工具,但仍需要一台一台登陆到服务器上 ...