自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

少儿编程乔老师

致力于青少年编程普及教育

  • 博客(385)
  • 资源 (4)
  • 收藏
  • 关注

原创 每周一算法:Kruskal算法求最小生成树

Kruskal 算法是一种常见并且好写的最小生成树算法,该算法的基本思想是从小到大加入边。具体来说,维护一个森林,查询两个结点是否在同一棵树中,连接两棵树。这里可以将森林抽象为一堆集合,查询两个元素是否属于同一集合,合并两个集合。其中,查询两点是否连通和连接两点可以使用并查集维护。

2024-05-23 12:20:15 694

原创 每周一算法:Prim算法求最小生成树

在一个无向图中求边权和最小的生成树,即无向连通图的最小生成树(Minimum Spanning Tree,MST)。本文介绍使用Prim算法求最小生成树。

2024-05-23 11:51:48 698

原创 每周题解:牛的旅行

在一个无向图中,编程找出一条连接两个不同牧场的路径,使得连上这条路径后,所有牧场(生成的新牧场和原有牧场)中直径最大的牧场的直径尽可能小。

2024-05-15 23:25:21 661

原创 每周一算法:恰好经过K条边的最短路

给定一张由M条边构成的无向图,求从起点S到终点E恰好经过K条边(可以重复经过)的最短路。可以使用快速幂倍增 + Floyd 求解。

2024-05-15 22:46:22 761

原创 每周一算法:无向图的最小环

给定一张无向图,求图中一个至少包含3个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题,可以使用Floyd算法求解。

2024-05-10 15:02:38 762

原创 每周一算法:传递闭包

在交际网络中,给定若干个元素和若干对二元关系,且关系具有传递性。通过传递性推导出尽量多的元素之间的关系,这类问题被称为传递闭包。使用「Floyd」算法可以解决传递闭包问题

2024-05-09 15:22:54 640

原创 威海市编程挑战赛2024小学组T1:锤子

威海市编程挑战赛2024小学组T1:锤子。

2024-05-07 09:54:33 42

原创 每周一算法:单源次短路

Dijkstra算法求最短路和次短路的方案数。

2024-04-29 22:57:47 869

原创 每周一算法:二维差分

要将m块地毯铺在 n×n 的矩阵上,每块地毯会覆盖一个子矩阵,求最终每个格子被多少个地毯覆盖。这样的题目可以用二维差分进行优化。

2024-04-28 11:07:41 997

原创 每周题解:拯救大兵瑞恩

拆点后使用BFS求最短路。如果一个点所表示的含义,已经不能满足题目所求内容时,就需要增加状态,从而满题目需求,这个过程就是拆点。

2024-04-26 21:14:56 657

原创 每周一算法:最短路计数

利用最短路算法构建最短路拓扑序,利用动态规划的思想计算最短路方案数。

2024-04-25 21:58:48 1013

原创 每周一算法:多起点最短路

反向建边的思想可以解决从多个起点出发到达终点的最短路问题,但是当终点也有多个时,则无法处理。此时,除了「Floyd」算法之外,还可以使用虚拟源点的思想来处理。虚拟源点的基本思想就是设置一个虚拟源点,从该源点到每个起点建立一条权重为0的边。这样,对于每条从起点到终点的最短路,都可以对应一条从虚拟源点出发,经过起点到达终点的最短路。这样就可以利用单源最短路算法求多起点最短路问题。

2024-04-24 10:16:29 780

原创 【每周题解】道路与航线

道路与航线的算法思想是把双向边添加到图中,那么会形成若干个连通块,可以把每个连通块看作一个点,再把单向边添加到图中,会得到一张有向无环图。在有向无环图中,无论边权正负,都可以按照拓扑序进行遍历,在线性时间复杂度内求出单源最短路

2024-04-19 11:24:55 903

原创 [NOIP2009提高组T3]最优贸易

NOIP2009提高组T3,最优贸易。在非拓扑图中,通过最短路的方式求解状态。

2024-04-18 21:25:30 893

原创 每周一算法:负环判断

每周一算法:判断负环可以使用Bellman–Ford算法,时间复杂度为O(nm);也可是使用SPFA,它比Bellman-ford要快上许多倍,最好情况下的复杂度是O(km),这里的k是一个小于等于2的常数,最坏情况也是O(nm)。

2024-04-18 15:34:09 681

原创 NOIP2015提高组D2T3:运输计划

NOIP2015提高组D2T3:运输计划。二分答案,最近公共祖先,树上前缀和,树上差分。

2024-04-11 10:42:45 690

原创 每周一算法:树上差分

每周一算法:树上差分。有m次操作,每次操作要将树中从u到v路径上的每一条边增加一个常数c,可以使用树上差分进行优化。

2024-04-10 18:27:57 964

原创 NOIP2014提高组D1T2:联合权值

NOIP2014提高组D1T2:联合权值。通过图的深度优先遍历,求解联合权值。

2024-04-03 17:23:35 927

原创 CSP-S2020提高级T3:函数调用

CSP-S2020提高级第三题:函数调用。

2024-04-02 00:24:20 725

原创 每周一算法:旋转游戏

每一步操作有A~H一共8种选择,状态空间随着深度增加呈指数级别增长,但是答案序列不会太长,为了避免搜索超时,可以使用迭代加深A*(IDA*)实现。在每个状态下,如果中间8个格子里出现次数最多的是x,一共出现了m次,那么其余数字全变成x,至少需要8-m次操作。可以用这个作为预估步数。

2024-03-22 14:49:59 703

原创 每周一算法:迭代加深A*

把估价函数与迭代加深的DFS结合就是迭代加深A*(IDA*),基本思想是以迭代加深DFS的搜索框架为基础,把原来简单的深度限制加强为:若当前深度+未来估计步数>深度限制,则立即从当前分支回溯。

2024-03-22 10:10:17 701

原创 每周一算法:双向深搜

双向搜索——从初态和状态出发各搜索一半,产生的两棵深度减半的搜索树,在中间交汇、组成最终答案。避免了层数过深时,分支数量的大规模增长。

2024-03-15 10:54:03 1077

原创 每周一算法:迭代加深搜索

当搜索树规模随着层次的深入增长很快,并且题目能够确保答案在一个较浅层的节点时,就可使采用迭代加深的深度优先搜索算法来解决问题。其基本思想是从小到大限制搜索的深度,如果在当前深度限制下搜索不到答案,就把深度限制增加,重新进行一次搜索。

2024-03-14 23:32:31 855

原创 每周一算法:第K短路

A*算法解决第K短路问题,对每个节点,使用节点到终点的最短路径长度作为预估代价,当终点第K次出队时,就得到了第K短路的长度。

2024-03-08 13:19:08 933

原创 每周一算法:A*(A Star)算法

A*(A Star)算法是一种很常用的路径查找和图形遍历算法,它有较好的性能和准确度。A*算法与BFS类似,不同之处在于A*算法使用优先队列,选取优先级最高的状态作为下一个待扩展的状态。

2024-03-07 23:20:07 1138

原创 【算法可视化】图论专题

算法可视化 —— 图论专题

2024-03-06 22:43:22 908

原创 【算法可视化】搜索算法专题

算法可视化 —— 搜索算法专题

2024-03-06 22:20:32 468

原创 【算法可视化】模拟算法专题

算法可视化 —— 模拟算法专题

2024-03-06 22:17:37 463

原创 【算法可视化】基础算法专题

算法可视化 —— 基础算法

2024-03-06 22:16:00 484

原创 NOIP2002提高组T2:字符串变换

朴素版BFS虽然可以满足题目要求,但是要搜索的状态空间大、时间复杂度太高,可以使用双向广搜进行优化。双向广搜,是指从起点和终点同时开始进行BFS,双向奔赴直到找到共同的目标为止。

2024-03-06 10:18:53 946

原创 每周一算法:双向广搜

双向广搜,是指从起点和终点同时开始进行BFS,双向奔赴直到找到共同的目标为止。使用双向广搜可以大大减少了要搜索的状态空间,剪枝效果明显。使用双向广搜时要注意:* 在双向广搜时,优先选择队列中状态数量较少的方向来扩展,可以优化搜索效率* 在扩展时,需要将一层的所有节点扩展完,不能只扩展一个点。

2024-03-01 15:33:55 999

原创 每周一算法:双端队列广搜

对于只包含边权0和1的最短路问题,可以使用双端队列广搜求解。与普通的BFS不同的是:如果扩展到的新节点边权为0时,需要把新节点插入队列的头部。

2024-03-01 12:46:41 1040

原创 NOIP2003提高组T1:神经网络

NOIP2003提高组T1:神经网络。拓扑排序,动态规划。

2024-01-22 16:40:38 1089

原创 NOIP2011提高组day1 - T3:Mayan游戏(玛雅游戏)

NOIP2011提高组day1 - T3:Mayan游戏(玛雅游戏),DFS深度优先搜索,可行性剪枝,优化性剪枝。

2024-01-19 17:22:06 893

原创 NOIP2009提高组T4:靶形数独

NOIP2009提高组T4:靶形数独。深度优先搜索,优化搜索顺序,可行性剪枝,二进制枚举。

2024-01-19 10:29:26 966

原创 每周一算法:数独游戏

每周一算法:数独游戏。暴力搜索数独的解决方案,优化搜索顺序,可行性剪枝,快速枚举二进制中的1。

2024-01-18 20:05:27 1060

原创 NOIP2004提高组T4:虫食算

NOIP2004提高组T4:虫食算。优化搜索顺序,剪枝。

2024-01-17 19:26:40 907

原创 NOIP2003提高组T4:传染病控制

NOIP2003提高组T4:传染病控制。暴力搜索所有切断方案,剪枝提高搜索效率。

2024-01-17 12:14:23 935

原创 NOIP2018提高组day2 - T1:旅行

NOIP2018提高组day2 - T1:旅行,深度优先搜索字典序最小序列,基环树,最优剪枝。

2024-01-16 15:16:49 981

原创 NOIP2013提高组day2 - T3:华容道

NOIP2013提高组day2 - T3:华容道。构建图,使用SPFA求解图的最短路。

2024-01-12 19:40:09 892

CSP-J 2021测试源文件

CSP-J 2021测试源文件,仅用于NOI Linux中Arbiter_local评测使用。

2023-10-17

scratch3.0文件打包工具-htmlifier

HTMLifier会将您的Scratch项目打包为一个HTML文件,该文件可以在网络浏览器中单独运行。 HTML文件将很大,因为它包含整个Scratch引擎(2.6 MB)以及项目中使用的服装和声音文件。

2020-04-02

最新版信息学奥赛课课通配套资料C++.zip

最新版信息学奥赛课课通C++教材配套课件及练习题解,本书配套资源包括电子课件PPT、习题答案、习题参考代码、测试数据共4部分。

2019-08-16

算法设计与分析基础第三版课后习题-英文原版

英文原版,算法设计与分析基础第三版课后习题及提示,请下载

2018-11-15

HTML 5 + CSS 3 + JavaScript网页设计案例课堂 - 源代码

HTML 5 + CSS 3 + JavaScript网页设计案例课堂 - 源代码

2018-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除