07 2022 档案
摘要:问题 A: 【一本通基础排序】【例2.2】车厢重组 [题目描述] 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按
阅读全文
摘要:问题 A: 【一本通基础DP基础模型】【例9.2】数字金字塔 【题目描述】 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。 【输
阅读全文
摘要:因为本文章是习题练习,所有不会有具体讲解。如想看具体的思路讲解,请在我的博客中找到动态规划算法详解, 或者访问 动态规划算法详解_不怕困难的博客的博客-CSDN博客 问题 A: 【一本通基础DP背包】【例9.11】01背包问题 [题目描述] 一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物
阅读全文
摘要:因为本文章是习题练习,所有不会有具体讲解。如想看具体的思路讲解,请在我的博客中找到分治算法详解(带图),或者访问 分治算法详解(带图)_不怕困难的博客的博客-CSDN博客 问题 A: 【一本通基础分治】循环比赛日程表 [题目描述] #include <bits/stdc++.h> using nam
阅读全文
摘要:因为本文章是习题练习,所有不会有具体讲解。如想看具体的思路讲解,请在我的博客中找到广度优先搜索算法带图详解, 或者访问 广度优先搜索算法带图详解_不怕困难的博客的博客-CSDN博客 问题 A: 【一本通基础广度优先搜索】 最少步数 [题目描述] 在各种棋中,一种棋子的走法总是一定的,如中国象棋中马走
阅读全文
摘要:1、队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点: (1)队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构; (2)在队尾添加元素,在队头删除元素。 2、队列的相关概念: (1)队头与队尾: 允许元素插入的一端称为队尾,允许元素删除的
阅读全文
摘要:1、栈(Stack)是一种线性存储结构,它具有如下特点: (1)栈中的数据元素遵守“先进后出"(First In Last Out)的原则,简称FILO结构。(后进先出的叫法,也是可以的) (2)限定只能在栈顶进行插入和删除操作。 2、栈的相关概念: (1)栈顶与栈底:允许元素插入与删除的一端称为栈
阅读全文
摘要:前言 有人说贪心算法是最简单的算法,原因很简单:你我其实都很贪,根本不用学就知道怎么贪。有人说贪心算法是最复杂的算法,原因也很简单:这世上会贪的人太多了,那轮到你我的份? 贪心算法思想: 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义
阅读全文
摘要:实际场景中,我们之所以觉得有些问题很难解决,主要原因是该问题涉及到大量的数据,如果只需要处理少量的数据,问题会变得非常容易解决。 举一个简单的例子,设计一个排序算法实现对 1000 个整数进行排序。对于很多刚刚接触算法的初学者来说,直接实现对 1000 个整数进行排序是非常困难的。而同样的问题,如果
阅读全文
摘要:算法思路:用中间点 𝑘 更新最短路, 𝑖 → 𝑘 → 𝑗 。 算法实现:从小到大枚举 𝑘, 𝑖,𝑗 更新即可。 算法正确性:注意到实现时变量的枚举顺序很神奇。考 虑 𝑖 → 𝑗 的最短路 𝑎 1 = 𝑖, 𝑎 2 , 𝑎 3 , … , 𝑎 𝑚 = 𝑗 ,此时
阅读全文
摘要:算法思路 用一个队列储存当前可能用于更新邻接 点的点,每次取出队首更新邻接点,若邻接点能被 更新,则把该点塞进队列(保证队列中没有相同的 点)。 看起来是个很不靠谱的算法,SPFA 只能在随机数据 下或者在某些 DP 模型中运行良好。 下面我们通过『怎样卡SPFA』来理解这个算法的问
阅读全文