题解P1613跑路

今天没什么好说的那我就卖个萌吧(~ ̄▽ ̄)~

Luogu

一道思维题可能仅是对我来说,对于大佬们都是显然的


简化题意

给你一个图,找到一个路径,使其路径的二进制位中\(1\)的个数最少

分析

这题的题目就有两个坑点或许仅是对我而言

  1. 每次走的时候,只有在端点才可以停下,即如果有一条路从\(i\)\(j\),如果其路径长为7,则不可以从\(i\)直接走到\(j\),你要走\(3\)次。

  2. 由于\(1.\)所以直接跑最短路不一定是最优。

然后想解法

首先,由于~~标签/路径太长了/牛*的~~机器特殊的跑路方式,所以我们想到了用倍增来解决这个问题

然后考虑这题最后还是要求最短路。我们又看到了数据范围\(n<=50\),所以就想到弗洛伊德,求最短路。但由于上面的结论,我们不可以直接跑最短路,故而我们需要对这个图的做一个转化。这道题很难对图的点做出转化,所以我们选择对边/路径做出转化。

然后就考虑对路径的转化。考虑之前不能直接跑最短路的原因:我们无法在较短的时间里直接确定怎样的路径中二进制位的\(1\)的个数更少,所以当我们把路径的贡献转化为它在二进制中\(1\)的个数你就可以算的最短路。

所以先预处理出从\(i\)\(j\)的最短路径中\(1\)的个数,然后再求一边最短路就好的。

对于求\(i\)\(j\)的最短路径中\(1\)的个数,由于\(i\)\(j\)的路径有一种性质我哦不知道具体的名字\(i\)\(t\)中个数为\(k\),\(t\)\(j\)中个数为\(k\),那么\(i\)\(j\)中的\(1\)的个数就是\(k+1\)。故,我们可以用类似于传递闭包的方式来求的每两个点之间的最短路中的二进制位的\(1\)的个数


code

#include<iostream>
#include<cstring>
using namespace std;
int n,m,x,y,dis[55][55];
bool map[55][55][65];
inline void pre(){for(register int t=0;t<=64;t++)for(register int k=1;k<=n;k++)for(register int i=1;i<=n;i++)for(register int j=1;j<=n;j++)if(map[i][k][t-1]&&map[k][j][t-1])map[i][j][t]=1,dis[i][j]=1;
}
inline void floyed(){for(register int k=1;k<=n;k++)for(register int i=1;i<=n;i++)for(register int j=1;j<=n;j++)dis[i][j]=min(dis[i][k]+dis[k][j],dis[i][j]);
}
int main(){scanf("%d%d",&n,&m);memset(dis,0x3f,sizeof(dis));for(register int i=1;i<=m;i++)scanf("%d%d",&x,&y),dis[x][y]=1,map[x][y][0]=1;pre();floyed();printf("%d",dis[1][n]);
}

最后国际惯例,thankyou for your attention

转载于:https://www.cnblogs.com/fallen-down/p/11589151.html

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

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

相关文章

路由重分布列表控制例子

OSPF与RIP路由重分布配置&#xff0c;使用重分布列表&#xff0c;对分布的路由进行控制的配置如上例图所示&#xff1a;“RIP与OSPF路由重分布例子”switchA(config)#router ripswitchA(config-router)#network 192.168.10.0switchA(config-router)#network 192.168.20.0switch…

git随笔

repo init -u ssh://wangxygit.fd565.com:29418/Product/F3/Lichee.git rm .repo/ -rf rm ~/.ssh/* -rf ssh-keygen cat ~/.ssh/id_rsa.pu repo sync -j8 —————————————————————————————————————————————————————————…

F#入门书籍

作为 Microsoft .NET Framework 家族的新成员&#xff0c;F# 提供类型安全、性能以及类似脚本语言的工作能力&#xff0c;所有这些都是 .NET 环境的一部分。此函数式语言由 Microsoft 研究院的 Don Syme 发明&#xff0c;作为 CLR 的 OCaml 语法兼容变体&#xff0c;但 F# 已经…

OCP-052考试题库汇总(59)-CUUG内部解答版

In one of your databases: 1.USER1 and USER2 have no system privileges. 2.ROLE1 only has these privileges: ?CREATE SESSION ?CREATE TABLE ?CREATE VIEW Examine these commands: SQL> conn / as sysdba Connected. SQL> GRANT create table, role1 TO user1 W…

性能测试工具SilkPerformer介绍

SilkPerformer 是业界最强大&#xff0c;且最易用的企业级负载和强度测试解决方案&#xff0c;用于对关键任务应用的质量进行优化。SilkPerformer使用可视化脚本生成技术和对存在成千上万的并发用户的多个应用环境进行测试的能力&#xff0c;使您能够在企业应用部署之前&#x…

题解P3745期末考试

我太菜了&#xff0c;QAQ Luogu 简要分析 和洛谷的一篇分治的题解是一样的想法&#xff08;是我看的她的&#xff09;&#xff0c;我只是一个更详细的代码解释&#xff0c;所以大家还是看洛谷题解吧 简要说一下。贪心的选取。在C花费多的情况下&#xff0c;若A比B花费多&#x…

pluto实现分析(22)

本文档的Copyleft归yfydz所有&#xff0c;使用GPL发布&#xff0c;可以自由拷贝&#xff0c;转载&#xff0c;转载时请保持文档的完整性&#xff0c;严禁用于任何商业用途。msn: yfydz_no1hotmail.com来源&#xff1a;http://yfydz.cublog.cn18. 密钥处理pluto的配置文件中支持…

OCP-052考试题库汇总(60)-CUUG内部解答版

Examine these facts about a database: The database default tablespace to EXAMPLE. DEFERRED_SEGMENT_CREATION is TRUE (原来为 FALSE&#xff0c;题目有错) Examine these commands: SQL> CREATE USER user1 IDENTIFIED BY oracle_4U PASSWORD EXPIRE; User created. …

JavaScript tips and tricks - 4

JavaScript doesn’t have block scopeBlock doesn’t have scope in javascript, only function has scope. for(var i 0; i < 2; i ) { } i; // 2 If you want to create scope, use anonymous function: (function (){ for(var i 0; i < 2; i ) { } })(); typeof(i…

题解CF110E

感谢nofind大佬的推荐☆⌒(*&#xff3e;-゜)v nofind就是我男神&#xff0c;不接受反驳 大雾 CF110E Luogu 题意简述 大佬们自己看洛谷的题目就好了&#xff0c;写的既清楚又简短&#xff0c;我就不再赘述了其实就是自己懒 分析 一看到这个式子就知道不可以硬怼&#xff0c;又…

Office2010试用

昨天看到了Office的下载地址&#xff0c;就安装了一个试了试&#xff0c;总体感觉和Office2007变化不大&#xff0c;外观配色上看起来非常舒服&#xff0c;Aero效果用得更多了&#xff0c;具体功能改进还没有细研究&#xff08;其实一直感觉到了2003后的更新大都只是在界面和适…

使用acme.sh签发Let's Encrypt的免费数字证书

--------------安装----------------curl https://get.acme.sh | sh#让alias生效source ~/.bashrc -------------设置DNS API------------在dns运营商网站设置DNS API的API KEY/SECRET KEY#例如阿里云&#xff0c;域名所在账号登录后&#xff0c;进入如下页面进行设置 https://…

DataGridView 控件中至少有一列没有单元格模板的解决

当程序动态为DataGridView添加一列时如果这样写&#xff1a; DataGridViewColumn col new DataGridViewColumn (); col.Name "colname"; col.HeaderText "列标题"; Dgv.Columns.Add(col); 肯定会提示“DataGridView 控件中至少有一列没有单元格模板…

部署安全系统之道

如何才能确保系统的安全&#xff1f;这虽然是一个老生常谈的问题&#xff0c;但是&#xff0c;还是有很多网络用户不知道该如何回答&#xff0c;或者是不知道什么才是最恰当的回答。究其原因&#xff0c;不是他们不知道如何去做&#xff0c;而是没有为此形成一种解决问题的思路…

配置WINDOWS群集

配置WINDOWS群集 实验说明&#xff1a;本实验用于配置WINDOWS群集 实验名称&#xff1a;配置WINDOWS群集 实验目的&#xff1a;理解WINDOWS群集服务的工作原理&#xff0c;熟练掌握安装WINDOWS群集服务及配置WINDOWS群集 实验设备&#xff1a;windows server 2003 VM 二台 实验…

在lighttpd上使用fastcgi方式部署hg server

lighttpd配置&#xff1a;#加载fastcgi模块 server.modules ( "mod_fastcgi" ) #定义一个新的web服务在81端口 $SERVER["socket"] "0.0.0.0:81"{ server.document-root "/home/hg/hgserver/" #下面是认证的配置 #auth.debug 2 a…

走进Windows Server 2008服务器核心(Serve Core)

从 Windows Server 2008 开始&#xff0c;管理员可以选择安装具有特定功能但不包含任何不必要功能的 Windows Server 的最小安装服务器核心(Server Core)&#xff0c;它为一些特定服务的正常运行提供了一个最小的环境&#xff0c;从而减少了其他服务和管理工具可能造成的***和风…

深入解读ESB与SOA的关系

深入解读ESB与SOA的关系时至今日&#xff0c;SOA的概念渐渐清晰了。有关ESB的概念&#xff0c;已经吵了好多年了&#xff0c;还是没有定论。我个人认为&#xff0c;ESB本来就是抽象的概念&#xff0c;而且内涵丰富&#xff0c;在不同的场合含义不同。因此应该从不同的角度来认识…

李天平×××作诞生记——《亮剑.NET:.NET深入体验与实战精要》

从开始搞.NET开发至今已经有六、七年了&#xff0c;从当初对.NET一无所知&#xff0c;到现在领导研发团队进行各种项目的开发和架构设计&#xff0c;几年里经历了各种沟沟坎坎&#xff0c;无论是技术上的&#xff0c;还是管理上的。这些经历和经验就像一笔财富&#xff0c;为自…

javascript面向对象5

类变量/类方法/实例变量/实例方法在js中&#xff0c;所有的方法都有一个call方法和apply方法&#xff0c;这两个方法可以模拟对象调用方法。它的第一个参数是对象&#xff0c;后面的参数表示对象调用这个方法时的参数。比如&#xff0c;我们定义了一个方法f(),然后调用下面的语…