【luogu1613】跑路 - 倍增+Floyd

题目描述

小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零。可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟可以跑2^k千米(k是任意自然数)。当然,这个机器是用longint存的,所以总跑路长度不能超过maxlongint千米。小A的家到公司的路可以看做一个有向图,小A家为点1,公司为点n,每条边长度均为一千米。小A想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到公司。数据保证1到n至少有一条路径。

输入输出格式

输入格式:

第一行两个整数n,m,表示点的个数和边的个数。

接下来m行每行两个数字u,v,表示一条u到v的边。

输出格式:

一行一个数字,表示到公司的最少秒数。

思路

如果 $ f_{i,j,t} = 1 $ 表示从i到j有一条长度为 $2^{t}$ 的路径,

那么如果$ f_{i,k,t-1} = 1$ 且$ f_{k,j,t-1} = 1$ 从i到j就存在一

条长度为 $2^{t}$ 的路径,让$dis_{i,j}=0$即可

#include <bits/stdc++.h>
using namespace std;
const int maxn = 60 + 10;
int n,m,dist[maxn][maxn];
bool f[maxn][maxn][maxn];
int main() {memset(dist,10,sizeof(dist));scanf("%d%d",&n,&m);for (int i = 1,x,y;i <= m;i++) {scanf("%d%d",&x,&y);dist[x][y] = 1;f[x][y][0] = 1;}for (int d = 1;d <= 64;d++)for (int i = 1;i <= n;i++)for (int k = 1;k <= n;k++)for (int j = 1;j <= n;j++)if (f[i][k][d-1] && f[k][j][d-1]) {f[i][j][d] = true;dist[i][j] = 1;}for (int k = 1;k <= n;k++)for (int i = 1;i <= n;i++)for (int j = 1;j <= n;j++) dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j]);printf("%d",dist[1][n]);return 0;
}

 

转载于:https://www.cnblogs.com/lrj124/p/8971640.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python哲学翻译_Python

正在学习Python开发语言的用户&#xff0c;可能会在学习过程中听说过讲师说过Python有一段有关于Python的哲学理念机设计思想&#xff0c;在Python里输入“import this”命令就会出现一段英文格言&#xff0c;这里我们把Python的这段格言的双语版分享出来&#xff0c;帮助正在学…

如何创建线程?

Java并发编程&#xff1a;如何创建线程&#xff1f; 在前面一篇文章中已经讲述了在进程和线程的由来&#xff0c;今天就来讲一下在Java中如何创建线程&#xff0c;让线程去执行一个子任务。下面先讲述一下Java中的应用程序和进程相关的概念知识&#xff0c;然后再阐述如何创建线…

经典MapReduce作业和Yarn上MapReduce作业运行机制

一、经典MapReduce的作业运行机制 如下图是经典MapReduce作业的工作原理&#xff1a; 1.1 经典MapReduce作业的实体 经典MapReduce作业运行过程包含的实体&#xff1a; 客户端&#xff0c;提交MapReduce作业。JobTracker&#xff0c;协调作业的运行。JobTracker是一个Java应用程…

根据Linux2.6.26源码分析进程模型

1.关于进程 1.1进程的概念 进程是正在运行的程序实体&#xff0c;并且包括这个运行的程序中占据的所有系统资源&#xff0c;比如说CPU(寄存器)&#xff0c;IO,内存&#xff0c;网络资源等。很多人在回答进程的概念的时候&#xff0c;往往只会说它是一个运行的实体&#xff0c;而…

socket编程开发

1.socket是什么&#xff1f; Socket是应用层与TCP/IP协议族通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是一个门面模式&#xff0c; 它把复杂的TCP/IP协议族隐藏在Socket接口后面&#xff0c;对用户来说&#xff0c;一组简单的接口就…

一个前端岗位电话面试所带来的问题的思考

这绝对不是一篇技术文&#xff0c;如果你不喜欢&#xff0c;也请不要喷&#xff0c;你可以看看都有哪些问题&#xff0c;当然&#xff0c;在这里你可能得不到问题的答案&#xff0c;不懂的你可能需要自己去百度&#xff0c;也可以在下面留言交流&#xff0c;我已经声明了&#…

Spring MVC –揭秘了@RequestBody和@ResponseBody

在这篇文章中&#xff0c;我想对Spring MVC进行一些深入的探讨&#xff0c;以揭示将请求转换为参数对象后在幕后发生的情况&#xff0c;反之亦然。 在开始之前&#xff0c;我想解释这些注释的目的。 RequestBody和ResponseBody是做什么用的&#xff1f; 它们是spring mvc框架的…

python大作业外星人入侵_【python3小白上路系列】外星人入侵——开始

早起的周日&#xff0c;今日阴天&#xff0c;老爸生日快乐~开始项目首先创建一个空的Pygame窗口&#xff0c;供后面用来绘制游戏元素&#xff0c;如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。1.1.1 创建Pygame窗口以及相应用户输入首先&…

Codeforces 975D Ghosts 【math】

打了两次cf里的比赛&#xff0c;发现cf比较喜欢考数学题。一开始看到这道题没有思路&#xff0c;因为总想dp&#xff0c;图论&#xff0c;贪心这些东西。如果下次再没有思路&#xff0c;可以从数学的角度入手。 题解说的比较清楚&#xff1a; 2018.9.4又看了遍这题&#xff0c;…

前后台分离之数据模拟

在前后端分离的项目中&#xff0c;前后端约定好接口以后&#xff0c;就开始进入各自的开发阶段了&#xff0c;这时候我们前端不可避免的就需要进行数据模拟&#xff0c;那么怎么进行数据模拟呢&#xff1f;我觉得有两种&#xff1a; 在 客户端 模拟数据&#xff0c;也就是在我…

碎玻璃:诊断生产Cassandra问题

我刚刚在健康市场科学&#xff08;HMS&#xff09;成立二周年之际&#xff0c;我们几乎一直在这里与Cassandra一起工作。 那时&#xff0c;我们遇到的问题很少。 就像我曾经使用过的其他几种技术一样&#xff0c;Cassandra“行之有效”。 但是&#xff0c;就像我曾经使用过的*…

java 一维数组_java基础 ---- 一维数组

为什么要使用数组&#xff1a; 因为不使用数组计算多个变量的时候太繁琐&#xff0c;不利于数据的处理。-------- 数组也是一个变量&#xff0c;是存储一组相同类型的变量声明一个变量就是在内存中划出一块合适的空间声明一个数组就是在内存中划出一块连续的空间数组长度就是…

四则运算2

作业描述&#xff1a; 悲催的二柱子接到了老师要求给软件增加一些小小的功能&#xff0c;具体要求如下&#xff1a; 1、除了整数以外&#xff0c;还要支持真分数的四则运算&#xff08;需要验证结果的正确性&#xff09;&#xff1b; 2、一次出的题目避免相互重复&#xff1b; …

Java中的策略设计模式-示例教程

策略模式是行为设计模式之一 。 当我们对一个特定任务有多种算法&#xff0c;并且客户端决定在运行时使用的实际实现时&#xff0c;将使用策略模式。 策略模式也称为策略模式 。 我们定义了多种算法&#xff0c;并让客户端应用程序将算法用作参数。 此模式的最佳示例之一是采用…

MySQL数据库主从复制

使用gtid &#xff08;也需要开启binlog日志&#xff09; CHANGE MASTER TO MASTER_HOST’192.168.95.11’, MASTER_USER’mysql12’, MASTER_PASSWORD’mysql12’,MASTER_AUTO_POSITION 1; 使用binlog CHANGE MASTER TO MASTER_HOST’192.168.95.12’, MASTER_USER’mysql…

vue-cli 3.0 使用全过程讲解

2018年8月13日更新&#xff1a; 恭祝vue-cli 3.0.0 官方正式版发布&#xff0c;此后我们可以正式在3.0环境下进行项目开发了。 此文发布以来受到了很多朋友的阅读&#xff0c;但我深知这篇文章还是很浅显的&#xff0c;因此&#xff0c;我会在后续的 3.0 使用过程中分享我遇到…

java反射机制在spring_Java反射机制在Spring IOC中的应用

IOC&#xff1a;即“控制反转”&#xff0c;不是什么技术&#xff0c;而是一种思想。使用IOC意味着将你设计好的对象交给容器控制&#xff0c;而不是传统的在你的对象内部直接控制。本篇文章主要讲解一下IOC底层实现的原理(反射)&#xff0c;Bean容器的实现&#xff0c;就不对I…

【图像处理】Haar-like特征

特征提取的原理、代码等&#xff1b; 如果是白黑白&#xff0c;是减去一个黑的还是2个黑的&#xff0c;网上有不同的说法&#xff1b;应该需要看原论文了。 论文原文 The sum of the pixels which lie within the white rectangles are subtracted from the sum of pixels in t…

mysql获取某个表的所有字段名

转载&#xff1a;mym43210 mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库。 information_schema库中有一个名为COLUMNS的表&#xff0c;这个表中记录了数据库中所有表的字段信息。 知道这个表后&#xff0c;获取任意表的字段就只需要一条sele…

neo4j / cypher:悬挂查询参数

一直以来&#xff0c;我一直在使用neo4j的密码查询语言&#xff0c; 迈克尔一直在告诉我在查询中使用参数&#xff0c;但是查询的性能始终可以接受&#xff0c;因此我没有必要。 但是&#xff0c;最近我正在研究一个数据集&#xff0c;并使用类似于以下的代码创建了约500个节点…