题目链接

题意:

  找从a到b的经过N条边的最短路

分析:

  有点板子。。。方法:矩阵存,然后有个类似快速幂的思想,然后再加上离散化就好了。

  没啥写的,只能说说矩阵了,我用的方法是先枚举i,j再枚举k,当然大部分人还是喜欢用floyd的代码去写,其实是类似的,然后还有什么呢,就是注意初始化,然后稍微处理一下就好了,代码如下:

  

#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const int maxn=+;
const int maxm=+;
int ed[maxm][maxm];
int n;
struct JZ{//矩阵
int a[maxm][maxm];
JZ(){
memset(a,0x3f,sizeof(a));
}
JZ(int s){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
a[i][j]=ed[i][j];
}
friend JZ operator + (JZ a,JZ b){
JZ c;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)
c.a[i][j]=min(b.a[i][k]+a.a[k][j],c.a[i][j]);
return c;
}
};
int ha[maxn];
int main(){
memset(ed,0x3f,sizeof(ed));
int N,m,s,e;
scanf("%d%d%d%d",&N,&m,&s,&e);
int js1,js2,js3;
int js=;
for(int i=;i<=m;i++){
scanf("%d%d%d",&js3,&js1,&js2);
if(!ha[js1]){
js++;
ha[js1]=js;
}
if(!ha[js2]){
js++;
ha[js2]=js;
}
ed[ha[js1]][ha[js2]]=ed[ha[js2]][ha[js1]]=min(ed[ha[js1]][ha[js2]],js3);
}
for(int i=;i<maxn;i++)
if(ha[i])
n++;
bool f=;
JZ D;
for(JZ now();N;now=now+now){//有点类似快速幂的思想
if(N&&&f){
D=now;
f=;
}
else if(N&)
D=D+now;
N>>=;
}
printf("%d",D.a[ha[s]][ha[e]]);
return ;
}

Cow Relays,过N条边的最短路的更多相关文章

  1. poj3613 Cow Relays【好题】【最短路】【快速幂】

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:9207   Accepted: 3604 Descrip ...

  2. POJ3613 Cow Relays [矩阵乘法 floyd类似]

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7335   Accepted: 2878 Descri ...

  3. Cow Relays 【优先队列优化的BFS】USACO 2001 Open

    Cow Relays Time Limit: 1000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Tota ...

  4. poj3613:Cow Relays(倍增优化+矩阵乘法floyd+快速幂)

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7825   Accepted: 3068 Descri ...

  5. Poj 3613 Cow Relays (图论)

    Poj 3613 Cow Relays (图论) 题目大意 给出一个无向图,T条边,给出N,S,E,求S到E经过N条边的最短路径长度 理论上讲就是给了有n条边限制的最短路 solution 最一开始想 ...

  6. 2021.11.03 P2886 [USACO07NOV]Cow Relays G(矩阵+floyed)

    2021.11.03 P2886 [USACO07NOV]Cow Relays G(矩阵+floyed) [P2886 USACO07NOV]Cow Relays G - 洛谷 | 计算机科学教育新生 ...

  7. poj 3613 Cow Relays

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5411   Accepted: 2153 Descri ...

  8. [USACO 07NOV]Cow Relays

    Description For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a rel ...

  9. Cow Relays POJ - 3613 (floyd+快速幂)

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

随机推荐

  1. [RH134] 8-磁盘管理

    一.磁盘结构 我们以但磁盘的硬盘为例,如图所示: 从内向往有很多的磁道(这里我们只画了5条,实际上非常多),这个磁盘被划分为很多扇区.每个扇区有一个固定的大小,例如512Bytes. 对于多磁盘的硬盘 ...

  2. tensorflow2.0学习笔记第一章第二节

    1.2常用函数 本节目标:掌握在建立和操作神经网络过程中常用的函数 # 常用函数 import tensorflow as tf import numpy as np # 强制Tensor的数据类型转 ...

  3. iOS -程序启动原理和UIApplication的介绍

    一.UIApplication 简介       (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个Application都有自 ...

  4. Andorid中写文件后在电脑上看不到的解决办法

    每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而通过adb的方式查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更 ...

  5. 一文说通Dotnet Core的后台任务

    这是一文说通系列的第二篇,里面有些内容会用到第一篇中间件的部分概念.如果需要,可以参看第一篇:一文说通Dotnet Core的中间件   一.前言 后台任务在一些特殊的应用场合,有相当的需求. 比方, ...

  6. C和C++中static的比较

    using namespace std; class A{ private: static int a;//由static修饰的变量仅仅是一个声明,不能在此处进行初始化,需要在类的外部初始化. voi ...

  7. 动作函数-web_url

    web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "TargetFrame=&qu ...

  8. pip安装报错: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy

    pip安装报错 解决办法: pip install selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

  9. cb52a_c++_STL_堆排序算法make_push_pop_sort_heap

    cb52a_c++_STL_堆排序算法make_push_pop_sort_heapheapsort堆排序算法make_heap()-特殊的二叉树,每一个节点都比根小,根就是最大的数.大根堆,也可以做 ...

  10. C语言宏技巧 X宏

    前言 本文介绍下X宏的使用 首先简单介绍下宏的几种用法 #define STRCAT(X,Y) X##Y #define _STR(X) #@X #define STR(X) #X #define L ...