
数据结构与算法练习题
文章平均质量分 54
数据结构与算法练习题
-meteor-
这个作者很懒,什么都没留下…
展开
-
五种常见的最短路算法 (朴素Dijkstra,堆优化Dijkstra, Bellman-Ford,SPFA,Floyd)
常见的五种最短路算法摘要本文主要介绍关于图的最短路的五种常用算法和其应用。朴素Dijkstra, 堆优化Dijkstra,Bellman-Ford,SPFA, Floyd。这几种算法有各自的优势和劣势,适用于不同的场景。文章的难度不大,适合算法初学者学习。五种最短路算法之间的区别注:n表示图中点的数目,m表示图中边的数目。朴素Dijkstra算法介绍DijKstra的核心思想是贪心。先将起点距离自己的距离设为0,其余设为正无穷。一共循环n次,每一次循环,找到目前没有被找到过并且距离起点原创 2021-08-06 21:05:17 · 407 阅读 · 0 评论 -
洛谷P2024 POJ 1182 食物链 【带权并查集】
洛谷P2024 POJ 1182 食物链 【带权并查集】题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是 1 X Y,表示 X 和 Y 是同类。第二种说法是2 X Y,表示 X 吃 Y 。此人对 N 个动物,用上述两种说法,一句接一句地说出 K 句话,这原创 2021-08-05 00:39:17 · 207 阅读 · 1 评论 -
洛谷 P1379 八数码难题【搜索】
洛谷 P1379 八数码难题【搜索】题目描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。输入格式输入初始状态,一行九个数字,空格用0表示输出格式只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特殊无法到达目标状态原创 2021-08-05 00:22:04 · 240 阅读 · 0 评论 -
Acwing143.最大异或对 【字典树】【Trie】
143. 最大异或对在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数 N。第二行输入 N 个整数 A1~AN。输出格式输出一个整数表示答案。数据范围1≤N≤10^5,0≤Ai<2^31输入样例:31 2 3输出样例:3这道题如果没有标签的提示的话,很难想到可以用字典树来完成,不过Ai的数据范围提到了2^31,也不难想到字典树还可以存储二进制数字。思路:将每个数以二进制方式存入字典树,找的时候从原创 2021-07-28 22:21:35 · 137 阅读 · 0 评论 -
Acwing831. KMP字符串【KMP模板】
831. KMP字符串给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串 P 在模式串 S 中多次作为子串出现。求出模板串 P 在模式串 S 中所有出现的位置的起始下标。输入格式第一行输入整数 N,表示字符串 P 的长度。第二行输入字符串 P。第三行输入整数 M,表示字符串 S 的长度。第四行输入字符串 S。输出格式共一行,输出所有出现位置的起始下标(下标从 0 开始计数),整数之间用空格隔开。数据范围1≤N≤1051≤M≤106输入样原创 2021-07-28 09:53:06 · 359 阅读 · 0 评论