题目及题解

https://blog.csdn.net/CV_Jason/article/details/81385228

迪杰斯特拉重新认识

两个核心的存储结构:

int dis[n];  //记录每个点到源头的最短距离

bool mark[n];  //标记每个顶点到

/*如果想要保存路径,创建一个 二维数组,或者vector【n】,

里面的每个一维数组表示到达该节点的前一个节点,在(u为当前选出的新节点)当dis[v]==dis[u]+e[u][v],说明通过u到达v的路径也是最短路径,于是把u加入vector【v】;

如果(u为当前选出的新节点)当dis[v]>dis[u]+e[u][v],则说明有更短的路径,于是vector【v】.clean();清空vector【v】,然后加入u

这样任意一点x,(像遍历树一样)只使用dfs/bfs就能把所有从x到源的路径求出;

一个核心公式:

e[a][b]+dis[b]<e[a];  //当通新加入的节点b到达a的路程 ,比已知的到a的路程短,则把dis[a]更新为e[a][b]+dis[b];

流程:

初始化:

dis 设置成inf     //自定义无穷

mark 设置成false    

dis[0]设置成0      //0可换成任意一点源

执行核心过程:

for(n次,每次加入一个点)

{  设置两个变量记录每次找的最小的点的 下标和距离

  for(n次,找一个未加入的点)

  {  当if(mark【i】==false&&dis【i】<minDis)则更新下标和当前发现的最小距离}

  for(n次,检查是否能用新的点更新原来dis【n】)

  {}

}

深度优先 复习

外界 stack/vector

dfs(x)

{  s或v   push(x)

  if(x为最深一层)

  {一系列的处理操作}

  for(能从x往下走的路)

  {  dfx(x+/-1) }

  s或v  pop;//回溯到没有上一层的x,继续执行上一层for(x的下一条路 )的

}

1018 Public Bike Management (30) Dijkstra算法 + DFS的更多相关文章

  1. PAT Advanced 1018 Public Bike Management (30) [Dijkstra算法 + DFS]

    题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...

  2. PAT 甲级 1018 Public Bike Management (30 分)(dijstra+dfs,dfs记录路径,做了两天)

    1018 Public Bike Management (30 分)   There is a public bike service in Hangzhou City which provides ...

  3. PAT 1018 Public Bike Management(Dijkstra 最短路)

    1018. Public Bike Management (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...

  4. 1018 Public Bike Management (30 分)

    There is a public bike service in Hangzhou City which provides great convenience to the tourists fro ...

  5. 1018. Public Bike Management (30)

    时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue There is a public bike service i ...

  6. 1018 Public Bike Management (30分) 思路分析 + 满分代码

    题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...

  7. 1018 Public Bike Management (30)(30 分)

    时间限制400 ms 内存限制65536 kB 代码长度限制16000 B There is a public bike service in Hangzhou City which provides ...

  8. 1018 Public Bike Management (30分) PAT甲级真题 dijkstra + dfs

    前言: 本题是我在浏览了柳神的代码后,记下的一次半转载式笔记,不经感叹柳神的强大orz,这里给出柳神的题解地址:https://blog.csdn.net/liuchuo/article/detail ...

  9. 1018 Public Bike Management (30分) (迪杰斯特拉+dfs)

    思路就是dijkstra找出最短路,dfs比较每一个最短路. dijkstra可以找出每个点的前一个点, 所以dfs搜索比较的时候怎么处理携带和带走的数量就是关键,考虑到这个携带和带走和路径顺序有关, ...

随机推荐

  1. Requests将verify设置为False后取消警告的方式

    方法一 import requests import urllib3 urllib3.disable_warnings() resp = requests.get('https://www.***.c ...

  2. 26.python常用端口号

    MySQL默认端口 3306 Redis默认端口 6379 MongoDB默认端口 27017 django端口 8000 flask端口 5000 pyspider服务端口 5000(由flask开 ...

  3. Openface 入门

    Openface 简单入门 背景 Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了. Openface人脸比对结果 ...

  4. java判断是否是数字

    1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ ...

  5. el-tabs添加滚动条

    element-ui的el-tabs默认是没有滚动条的,可在 el-tab-pane上添加: <el-tab-pane style="height:90%;overflow-y:aut ...

  6. Spring Boot文档维护:集成Swagger2

    一.Swagger简介 在日常的工作中,我们往往需要给前端(WEB端.IOS.Android)或者第三方提供接口,这个时我们就需要提供一份详细的API说明文档.但维护一份详细的文档可不是一件简单的事情 ...

  7. React Native在window下的环境搭建(一)

    React Native官方开发文档 以下是本人抄录的: 初次接触React Native感觉和React很像,却是有点类似,但不完全是,React Native有自己的组件对象,不过它也自定义的组件 ...

  8. 性感天才黑客乔治·霍兹George Hotz 17岁打脸乔布斯20岁搞疯索尼

    1.国内外著名黑客信息 1) 国外著名黑客 George Hotz 乔治·霍兹(George Hotz,1989年10月2日-),美国学生,2007年8月解锁苹果(Apple)iPhone手机,使得i ...

  9. 合并数组,改变原数组apply与不改变原数组

    一看见合并数组,可能第一反应就是concat,concat确实具有我们想要的行为,但它实际上并不附加到现有数组,而是创建并返回一个新数组. 同样你也许会想到ES6的扩展运算符...         但 ...

  10. spring proxy-target-class

    <tx:annotation-driven transaction-manager="transactionManager"                          ...