正解:倍增+图论

解题报告:

传送门!

话说这题是真滴很妙啊,,,大概港下QwQ

首先看懂这道题,它是说,只要是1<<k的都能1s跑过,而且每条边的长度都是1,就是说一秒可以跑过1<<k条边

于是就可以先预处理出只用跑1s的点之间连上边,然后就变成最短路问题辣!

至于怎么预处理只用跑1s的点,就开一个bool数组f[i][j][k]表示i到j能否在2<<k内跑过去,然后转移就很好想了嘛,如果f[i][p][k]&&f[p][j][k]那就能转移到f[i][j][k+1]

话说看到这个转移,可以发现是枚举三个点嘛,于是想到Floyd,于是就没啦!

(,,,听说可以用spfa!好神仙的样子!想学!QAQ!

然后关于最后的求最短路,,,看到题解里都是Floyd或者spfa什么的,,,但是我jio得它都说了每条边长度为1了难道不是暗示用bfs?反正我用的bfsQAQ我我我我也不清楚复杂度QAQ

(还有个玄学事件我要记录下,,,是这样的,本来它是说M<=10000,但是我看N<=50就想着肯定是有重边,我就判了下重边什么的edge数组就开得不大

然后就一直RERERE,我加加加空间加到极大才过得去,,,但我jio得不应该啊我明明特判的重边的?QAQ?

#include<bits/stdc++.h>
using namespace std;
#define ll int
#define mp make_pair
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=,M=+;
ll n,m,head[N],cnt;
bool gg[N][N][],gdgs=,vis[N],rd[N][N];
struct ed{ll to,nxt;}edge[M<<]; inline ll read()
{
register char ch=getchar();register ll x=;register bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
inline void ad(int x,int y){edge[++cnt].to=y;edge[cnt].nxt=head[x];head[x]=cnt;}
inline void bfs()
{
queue< pair<ll,ll> >Q;Q.push(mp(,));vis[]=;
while(gdgs)
{
ll nw=Q.front().first;ll tm=Q.front().second;Q.pop();
if(nw==n){printf("%d",tm);return;}
for(register ll i=head[nw];i;i=edge[i].nxt)
{if(vis[edge[i].to])continue;Q.push(mp(edge[i].to,tm+));vis[edge[i].to]=;}
}
} int main()
{
// freopen("1613.in","r",stdin);
n=read();m=read();rp(i,,m){ll x=read(),y=read();gg[x][y][]=;ad(x,y);}
rp(p,,)
rp(k,,n)
rp(i,,n)
rp(j,,n)if(gg[i][k][p-] && gg[k][j][p-])gg[i][j][p]=,ad(i,j);
bfs();
return ;
}

放下代码(对了!边的数组开大点!我连续90pts四五次都是RE,数组开小了TT

洛谷P1613 跑路 图论的更多相关文章

  1. 洛谷P1613 跑路

    P1613 跑路 176通过 539提交 题目提供者该用户不存在 标签倍增动态规划 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 这个题的数据.. 题意问题 表意 题目描述 小A的工作不仅繁 ...

  2. 洛谷 P1613 跑路 解题报告

    P1613 跑路 题目描述 小\(A\)的工作不仅繁琐,更有苛刻的规定,要求小\(A\)每天早上在\(6:00\)之前到达公司,否则这个月工资清零.可是小\(A\)偏偏又有赖床的坏毛病.于是为了保住自 ...

  3. 洛谷P1613 跑路(最短路+倍增)

    P1613 跑路 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的 ...

  4. 洛谷——P1613 跑路

    P1613 跑路 题目大意: 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B ...

  5. 洛谷 P1613 跑路 题解

    P1613 跑路 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的 ...

  6. 洛谷 P1613 跑路 (倍增 + DP + 最短路)

    题目链接:P1613 跑路 题意 给定包含 \(n\) 个点和 \(m\) 条边的有向图,每条边的长度为 \(1\) 千米.每秒钟可以跑 \(2^k\) 千米,问从点 \(1\) 到点 \(n\) 最 ...

  7. 洛谷1613 跑路 倍增 + Floyd

    首先,我们一定要认识到本题中的最短时间所对应的道路不一定是在起点到终点的最短路.例如,起点到终点的最短路为 151515 ,那么对 151515 进行二进制拆分的话是 111111111111 ,这时 ...

  8. P1613 跑路(倍增)

    P1613 跑路(倍增) 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十 ...

  9. 洛谷 P1613 解题报告

    P1613 跑路 题目描述 小\(A\)的工作不仅繁琐,更有苛刻的规定,要求小\(A\)每天早上在\(6:00\)之前到达公司,否则这个月工资清零.可是小\(A\)偏偏又有赖床的坏毛病.于是为了保住自 ...

随机推荐

  1. TMS320F28335项目开发记录3_28335简介

    28335特性介绍 高性能静态CMOS技术         高达150MHZ(6.67ns的周期时间):1.9V / 1.8内核 ,3.3V I/O设计 高性能32位CPU         IEEE- ...

  2. hdu5087——Revenge of LIS II

    Revenge of LIS II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. C# SerialPortHelper类

    using System; using System.IO.Ports; class SerialPortHelper { private long _receiveByteCount = 0, _s ...

  4. 基于FP-Growth算法的关联性分析——学习笔记

    数据挖掘 比之前的Ap快,因为只遍历两次. 降序 一.构建FP树 对频繁项集排序,以构成共用关系. 二.基于FP树的频繁项分析 看那个模式基出现过几次.频繁度. 看洗发液的 去掉频繁度小的 构建洗发液 ...

  5. JS怎样捕获浏览器关闭时间弹出自定义对话框

    <script type="text/javascript">window.onbeforeunload = function (e) { e = e || windo ...

  6. [Scikit-learn] Dynamic Bayesian Network - HMM

    Warning The sklearn.hmm module has now been deprecated due to it no longer matching the scope and th ...

  7. Android之HttpPost与HttpGet使用

    一)HttpGet :doGet()方法 //doGet():将参数的键值对附加在url后面来传递 public String getResultForHttpGet(String name,Stri ...

  8. 实现Runnable接口和继承Thread类区别

    如果一个类继承Thread,则不适合资源共享.但是如果实现了Runable接口的话,则很容易的实现资源共享. 实现Runnable接口比继承Thread类所具有的优势: 1):适合多个相同的程序代码的 ...

  9. mac 安装mysql 修改密码

    我草!!! 上网查资料,安装mysql,一大推废话,简直就是他妈的瞎扯淡,真是能他妈的瞎编,草! 为了不让后面的同学看到那些狗屁不通的资料,我把自己安装mysql的步骤,以及修改mysql密码的方法梳 ...

  10. jq如何实现内容的无限滚动

    html: <div> <ul> <li>1</li> <li>2</li> <li>3</li> &l ...