- 博客(22)
- 收藏
- 关注
原创 前序序列和后序序列判断二叉树唯一性
对于每个测试用例,如果树是唯一的,则首先是行中的Yes,否则是No。但是,如果仅给出后序和前序遍历序列,则相应的树可能不再是唯一的。 我们知道,对于一棵二叉树,如果有他的前序序列与中序序列,或者后序序列与中序序列就可以建立唯一的这棵树。然而,如果只有他的前序序列和后序序列该怎么办呢?前序序列中第二个元素到某个点是左子树的信息,后序序列从倒数第二个元素到前面某个点是右子树的信息,但是这些信息并不足以精确。前序序列的第一个元素和后序序列的最后一个元素都指出了树的根节点,这是两者共同信息。
2024-06-25 16:01:10 401 1
原创 对于最短路问题的一些总结
次松弛操作后仍然存在可以继续松弛的边,则说明图中存在负权回路,即存在一个环路,使得沿着这个环路走一圈可以让路径的总权值变小。在这种情况下,Bellman-Ford算法会检测到负权回路并报告图中存在负权回路,因为负权回路会导致最短路径无法确定。Bellman-Ford算法是一种用于解决单源最短路径问题的算法,它通过对图中的边进行松弛操作来逐步求解从源点到其他所有顶点的最短路径。次松弛操作是Bellman-Ford算法的关键步骤,确保找到最短路径并检测负权回路。
2024-03-29 18:57:37 908
原创 启发式搜索(A*、IDDFS、IDA*)
A* 算法是一种路径搜索算法,用于在图形(如地图)中寻找最短路径。A* 算法基于启发式搜索和贪心搜索的思想,通过估计从起始点到目标点的距离来选择下一步移动。它综合。
2024-01-29 22:26:52 1868 1
原创 hdu-1010 Tempter of the Bone(dfs + 优化)
【代码】hdu-1010 Tempter of the Bone(dfs + 优化)
2024-01-21 23:10:43 621
原创 L2-4 寻宝图补题
输入第一行给出 2 个正整数 N 和 M(1<=N<=M<=1e5),是地图的尺寸,表示地图由 N 行 M 列格子构成。随后 N 行,每行给出 M 位个位数,其中 0 表示水域,1 表示陆地,2-9 表示宝藏。给定一幅地图,其中有水域,有陆地。被水域完全环绕的陆地是岛屿。有些岛屿上埋藏有宝藏,这些有宝藏的点也被标记出来了。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。注意:两个格子共享一条边时,才是“相邻”的。在一行中输出 2 个整数,分别是岛屿的总数量和有宝藏的岛屿的数量。
2024-01-19 22:55:37 368 1
原创 HDU 2037今年暑假不AC(贪心)
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。
2024-01-19 20:22:58 391 1
原创 寒假作业(蓝桥杯2016年省赛C++ A组第6题)
每个方块代表1~13中的某一个数字,但不能重复。(加法,乘法交换律后算不同的方案)题意:现在小学的数学题目也不是那么好玩的。你一共找到了多少种方案?
2024-01-17 22:23:53 460
原创 [蓝桥杯 2018 省 A] 三体攻击
三体人将对地球发起攻击。为了抵御攻击,地球人派出了A×B×C艘战舰,在太空中排成一个A层B行C列的立方体。其中,第i层第j行第k列的战舰(记为战舰ijk)的生命值为dijk。三体人将会对地球发起m轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第t轮攻击用7个参数latratlbtrbtlctrctht描述;所有满足i∈lat。
2024-01-16 21:08:33 858 1
原创 前缀和与差分
N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?Input 每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <=Output 每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。
2024-01-15 22:36:13 805
原创 [USACO07JAN] Balanced Lineup G ST算法
每天,农夫 John 的n1≤n≤5×104头牛总是按同一序列排队。有一天, John 决定让一些牛们玩一场飞盘比赛。他准备找一群在队列中位置连续的牛来进行比赛。但是为了避免水平悬殊,牛的身高不应该相差太大。John 准备了q1≤q≤1.8×105个可能的牛的选择和所有牛的身高hi1≤hi≤1061≤i≤n。他想知道每一组里面最高和最低的牛的身高差。
2024-01-14 12:27:57 930 1
原创 洛谷 P4155 国旗计划
A 国正在开展一项伟大的计划 —— 国旗计划。这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈。这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名优秀的边防战上作为这项计划的候选人。A 国幅员辽阔,边境线上设有M个边防站,顺时针编号1至M。每名边防战士常驻两个边防站,并且善于在这两个边防站之间长途奔袭,我们称这两个边防站之间的路程是这个边防战士的奔袭区间。N名边防战士都是精心挑选的,身体素质极佳,所以每名边防战士的奔袭区间都不会被其他边防战士的奔袭区间所包含。
2024-01-13 11:55:15 1033
原创 使用堆优化哈夫曼编码
我们优化项目主要在于哈夫曼编码中,寻找两个频次最低的字符的过程,之前使用的是遍历方法,效率较低,现在使用小顶堆的维护性质便可以轻松解决效率低下的问题!之前使用二叉树的创建方法创建了一棵哈夫曼树,实现了哈夫曼编码,如今用堆将哈夫曼编码优化一下!
2023-12-21 22:20:43 548
原创 笔记:堆和优先队列
好久没有写博客了┭┮﹏┭┮这几天感冒了,不过今天更新啦!完全二叉树中,从上到下、从左到右依次编号,可以得到节点的编号序列。完全二叉树的特点使得它可以用数组来表示,数组的索引对应了节点的编号,数组中的值对应了节点的值。这种表示方法使得完全二叉树的操作更加高效。不过我们不一定要以为起始节点,我们当然可以使用作为根节点编号,此时左子树编号为2*i+1,右子树编号为2*i+2。但是我们会发现,这样如果使用编号去遍历二叉树子树的运算次数是4!但是以1作为根节点编号的二叉树子树的遍历运算次数为3!
2023-12-18 17:52:40 1737
原创 二叉树的反序列化(广义表转二叉树)
当我们需要在另一台计算机中重构一棵二叉树,我们便需要对序列化的二叉树反序列化。可是计算机处理广义表没有人脑那么智能o(╥﹏╥)o,我们必须另寻他法!看到广义表的结构(完全包含关系),便可以想到一个基本数据结构:栈!只需要创建一个结点A,并将它作为root便可以了。由这样一个简单的例子,我们可以抽象出处理的法则!我们人类用肉眼便可以一下子看出这棵二叉树的结构。要解决这个比较复杂的问题,我们由浅处着手。如图所示,很简单吧!
2023-12-10 16:23:53 187 1
原创 C++类实现大整数
在计算机科学和工程中,整数类型有一个上限,称为其最大值或最大表示值,这限制了数字的大小范围。在一些应用中,需要处理比这个上限更大的整数,这时就需要使用大整数类。大整数类允许处理比计算机所提供的整数类型更大的整数,通常是以字符串形式存储,可以进行算术运算、比较和转换等操作。这在密码学、数值计算、物理仿真、金融等领域中非常有用。比如在密码学中,RSA加密算法就需要对非常大的整数进行加密和解密。在数值计算中,需要进行高精度计算,避免舍入误差,保证计算结果的准确性。在物理仿真中,需要模拟非常大或非常小的量。
2023-12-02 11:18:35 1416
原创 中国矿业大学2023级高级语言程序设计C++实验5题解
s_tmp的出栈顺序是本题的关键,这里给出出栈条件,读者可以自行揣摩:①如果s_tmp栈不为空,并且循环到达尾声,即。
2023-11-26 22:42:30 3357 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人