当前位置: 首页 > 编程日记 > 正文

【Luogu】P1613 跑路

【Luogu】P1613 跑路

一、题目

题目描述
小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的边。
输出格式:
一行一个数字,表示到公司的最少秒数。
输入输出样例
输入样例#1:
4 4
1 1
1 2
2 3
3 4

输出样例#1:

1

说明

【样例解释】

1->1->2->3->4,总路径长度为4千米,直接使用一次跑路器即可。

【数据范围】

50%的数据满足最优解路径长度<=1000;

100%的数据满足n<=50,m<=10000,最优解路径长度<=maxlongint。

二、题解

有点像最短路是吧。不过显然m条边是不够的,小A每次可以走\(2^k\)步,所以除了\(k=0\)即读入的边,我们还需要一些其他的边。考虑\(2^k(k \geq 1)\),是由2条\(2^{k-1}\)的边连接的。设\(edge[i][j][k]\)表示从\(i\)\(j\)是否可以通过\(2^k\)的边。所以可以用倍增求出所有其他的边。最后跑一遍最短路就好了。

三、代码

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
const int INF = 1e9;
const int MAXN = 50;
int n, m, edge[MAXN + 5][MAXN + 5][40], dis[MAXN + 5][MAXN + 5];
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= m; ++i) {int u, v;scanf("%d%d", &u, &v);edge[u][v][0] = true;}for (int k = 1; k <= 32; ++k)for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)for (int l = 1; l <= n; ++l)edge[i][j][k] = edge[i][j][k] || edge[i][l][k - 1] && edge[l][j][k - 1];for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)dis[i][j] = INF;for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)for (int k = 0; k <= 32; ++k)if (edge[i][j][k])dis[i][j] = 1;for (int k = 1; k <= n; ++k)for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);printf("%d\n", dis[1][n]);return 0;
}

转载于:https://www.cnblogs.com/herald/p/10001811.html

相关文章:

matlab图形用户界面设计简介

1、File->New->GUI->Create New GUI->Blank GUI->OK即可打开图形用户界面开发环境。 在里面可以拖放需要的控件&#xff0c;包括pushbutton、slider、radiobutton、togglebutton、checkbox、listbox、popupmenu、edit text、static text、table、axes、panel、…

旷视发布《人工智能应用准则》,倡导AI技术健康可持续发展

2019年7月8日&#xff0c;旷视宣布推出基于企业自身管理标准的《人工智能应用准则》&#xff08;以下简称《准则》&#xff09;&#xff0c;旨在从人工智能企业自身的角度&#xff0c;规范、引导人工智能技术正确运用和健康发展&#xff0c;并确保其安全可控可靠&#xff0c;促…

Java知识积累——String引用的判断问题

看如下程序 1 public static void main(String[] args) {2 String a new String("abc");3 String b new String("abc");4 System.out.println(a b); 5 6 String c "abc";7 String d "abc";8 …

windows7下vs2008常见错误解决方法汇总

1、fatal error LNK1000:Internal error during IncrBuildImage 解决方法&#xff1a;选中对应工程-->点击右键,选择Properties-->Configuration Properties-->Linker-->General-->选中Enable Incremental Linking&#xff1a;改为No(/INCREMENTAL:NO),原始选项…

5G对AIoT的作用并无夸大,最大价值在于融合

采访嘉宾 | 崔宝秋、高恩重整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;近年来&#xff0c;AIoT 的概念非常火爆&#xff0c;有不少企业将 AIoT 提升到公司的战略发展高度&#xff0c;然而实际上&#xff0c;走进普通人日常生活并真正实用的 AIoT 产品…

[USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699

题目背景 题目描述&#xff1a; 每天,农夫 John 的N(1 < N < 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. John 准备了Q (1 < Q < 18…

深度学习目标检测法进化史,看这一篇就够了

作者 | 黄浴&#xff0c;奇点汽车美研中心首席科学家兼总裁来源 | 转载自知乎专栏自动驾驶的挑战和发展本文将介绍自动驾驶中的深度学习目标检测的基本概念和方法&#xff0c;并对几个主要 Anchor free 方法进行了比较&#xff0c;希望对读者有所帮助&#xff0c;以下为正文&am…

Bridge Pattern

2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/hegezhou_hot/archive/2010/12/10/1902185.html 桥接模式的主要目的是将一个对象的变化因素抽象出来&#xff0c;不是通过类继承的方式来满足这个因素的变化&#xff0c;而是通过对象组合的方式来…

matlab神经网络工具箱函数汇总

转自&#xff1a;http://hi.baidu.com/lingyin55/blog/item/7a968ead11fe180c4b36d61e.html 1. 网络创建函数 newp 创建感知器网络 newlind 设计一线性层 newlin 创建一线性层 newff 创建一前馈BP网络 newcf 创建一多层前馈BP网络 newfftd 创建一前馈输入延迟BP网…

[每日短篇] 17 - 正确使用随机数 Random

2019独角兽企业重金招聘Python工程师标准>>> 随机数在系统开发中几乎是不可避免的一个需求&#xff0c;在大多数面试宝典一定会告诉你所谓的随机数其实是“伪”随机数&#xff0c;除此之外也就没有什么别的了。实际上这条知识本身已经是非常落后了&#xff0c;更不用…

LoadRunner的参数化功能分享

LoadRunner的参数化功能分享http://automationqa.com/forum.php?modviewthread&tid1598&fromuid2

MFC菜单的使用

1、 创建弹出菜单&#xff1a; (1)、利用向导&#xff0c;创建一个基于单文档的应用程序&#xff1b; (2)、在资源视图中选中”menu”&#xff0c;鼠标右键插入一新菜单IDR_POPMENU&#xff1b; (3)、在IDR_POPMENU菜单中添加”弹出菜单”选项&#xff0c;在”弹出菜单”下…

超阿里、大华,澎思科技行人再识别(ReID)技术刷新三大数据集记录

整理 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】不久前&#xff0c;江苏省某市公安通过 AI 技术分析监控摄像头中的信息&#xff0c;抓获了一个偷盗电动车的嫌疑人员。监控摄像头在现场拍到的是嫌疑人背对摄像头的情况&#xff0c;未有…

[转] vuewebpack多页面配置

前言 最近由于项目需求&#xff0c;选择使用vue框架&#xff0c;webpack打包直接使用的vue-cli&#xff0c;因为需要多页面而vue-cli只有单页面&#xff0c;所以就决定修改vue-cli的配置文件来满足开发需求。 html-webpack-plugin 实现需求需要用到这个插件&#xff0c; 具体信…

微信扫描二维码登入实现,网页端

2019独角兽企业重金招聘Python工程师标准>>> 服务器端要做得事很多&#xff0c;虽然逻辑不是很复杂&#xff0c;但是我们必须要分析清楚我们要做哪些事&#xff0c;请看下图&#xff1a; 通过这张图&#xff0c;我们看出&#xff0c;服务器端的接口一共有6个&#…

微软洪小文:AI将成为人类未来最好的左脑

演讲嘉宾 | 洪小文整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;2019 年 6 月 14 日&#xff0c;由清华大学五道口金融学院、清华大学国家金融研究院、清华大学研究生会联合主办的“未来已来—全球领袖论天下”系列讲座再次开讲。应清华…

计算机视觉相关网站

转自&#xff1a;http://blog.sciencenet.cn/home.php?modspace&uid454498&doblog&id377338 1、OpenCV中文网站 http://www.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5 2、Advanced Digital Imaging Solutions Laboratory (ADISL) Image Apprentice is a C/C ba…

预告 · Flutter Live 2018 全球同步直播

Flutter Live 2018 是 Google 在伦敦线下举办&#xff0c;并面向全球线上直播的一次 Flutter 庆祝活动。在 2018 年已经过去的这段时间里&#xff0c;Flutter 有着非常大的进展&#xff1a; 2 月底在世界移动大会 (MWC) 上宣布了第一个 Beta 版发布;5 月的 Google I/O 大会上发…

context-param与init-param的区别与作用

<context-param>与<init-param>的区别与作用 spring2009-11-04 16:49阅读39 评论0字号&#xff1a;大 中 小<context-param>的作用:web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个…

C#中object的使用

转自&#xff1a;http://www.hackvip.com/article/sort0129/sort0143/Hackvip_233655.html C#中system.object的函数方法功能介绍 在C#中&#xff0c;Object类型是所有类型的根&#xff0c;大家平常开发中都要跟它打交道&#xff0c;但不见得对它里面的每个方法都知根知底&am…

百炼智百炼智能获5000万元Pre-A轮融资,深耕智能获客赛道

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;2019年7月9日&#xff0c;百炼智能正式宣布完成5000万元Pre-A轮融资。该轮融资由东方嘉富领投&#xff0c;上市公司任子行、元投资本和酷我音乐创始人雷鸣等投资者跟投。百炼智能利用自有核心自然语言处理、图像识别和…

阿里巴巴连任 Java 全球管理组织席位

百度智能云 云生态狂欢季 热门云产品1折起>>> 11 月 23 日&#xff0c;阿里巴巴宣布连任 Java 全球管理组织 JCP 最高执行委员会委员&#xff0c;任期从 2018 年 12 月 4 号开始&#xff0c;为期两年。阿里表示&#xff0c;这意味将有更多中国开发者的声音被引入 Ja…

Django ModelForm操作及验证

一、内容回顾 Model- 数据库操作- 验证class A(MOdel): user email pwd Form - class LoginForm(Form): email fields.EmailField() user pwd - is_valid -> 每一个字段进行正则(字段内置正则)clean_字段 -> clean(__all__) -> _post_clean - cleand_data - err…

matlab外部接口简介

1、MATLAB外部接口主要包括3部分内容&#xff1a; (1)、MEX文件&#xff1a;外部程序调用接口&#xff1b; MEX文件是MATLAB解释器可以自动加载和运行的动态链接过程&#xff0c;MATLAB可以像调用内部函数一样调用它们。用户通过MEX文件可以完成以下功能&#xff1a; 可以在…

IE调试网页之一:F12 开发人员工具简介

F12 开发人员工具是可帮助生成和调试网页的一套工具。 编写出色的网页需要编码知识以及适当的工具来发现和调试难免会出现的问题。Windows Internet Explorer 9 提供所呈现代码的视图&#xff0c;F12 工具提供 Internet Explorer 9 如何在代码级别上解释这些页面的视图。F12 工…

100万奖金池,这不仅仅是场比赛

这&#xff0c;不仅仅是场比赛&#xff0c;更是对最前沿领域的共同探索2019 E起AI&#xff01;2019年度的大赛&#xff0c;由香港科大商学院和香港科大商学院内地办事处主办&#xff0c;由香港科大EMBA校友企业安讯科技冠名&#xff0c;将围绕人工智能领域的创新及运用展开赛事…

举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤

MATLAB Coder可以从MATLAB代码生成独立的、可读性强、可移植的C/C代码。 使用MATLAB Coder产生代码的3个步骤&#xff1a;准备用于产生代码的MATLAB算法&#xff1b;检查MATLAB代码的兼容性(有些matlab代码语句并不能生成c/c代码)&#xff1b;产生最终使用的源代码或MEX。 利…

媒体智能应用落地靠5G,视频社交需要想象力

作者简介&#xff1a;卢迪&#xff0c;中国传媒大学新媒体研究院书记、副教授、硕士研究生导师。人工智能正逐渐成为重要的基础设施&#xff0c;在与各行各业传统领域紧密结合的基础上对社会生产、生活方式带来深刻的影响。中央多次强调媒体融合&#xff0c;“要探索将人工智能…

堆栈的链表实现

2019独角兽企业重金招聘Python工程师标准>>> /** stack3.c** Created on: Dec 6, 2012* Author: fsxchen* 链式结构的栈*/ #include #include #include #include typedef struct StackNode //节点结构体 {int data; //存放数…

registry ---------仓库 -----------------镜像

registry --------->仓库 ----------------->镜像    本地镜像都保存在宿主机下 :    /var/lib/docker/containers    镜像从仓库下载下来.镜像保存在仓库中,而仓库存在于Registry中.    Docker Hub 中有两种类型的仓库:    用户库:    用户仓库…