- 博客(68)
- 收藏
- 关注
原创 算法:DFS【深度优先搜索】
一种用于遍历或者搜索树或图的算法。沿着树的深度遍历树的所有节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或在搜寻时结点不满足条件,则搜索将回溯到发现节点v的那条边的起始节点。整个进程将反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法复杂度为。完全可以用DFS解决,在前面的keda题解里提到过。当然,讲的是DFS,就看看大佬的解法。
2023-08-01 11:48:45
218
原创 桶排序(Bucket Sort)
桶排序(Bucket Sort)又称箱排序,是一种比较常用的排序算法。其算法原理是将数组分到有限数量的桶里,再对每个桶分别排好序(可以是递归使用桶排序,也可以是使用其他排序算法将每个桶分别排好序),最后一次将每个桶中排好序的数输出。但是弊端就是桶排序很浪费空间,比如说排序一亿个数 ,桶排序就要一亿个桶,很浪费,而冒泡排序就要一亿秒(好像就是),达到117天!所以对于这种很大的数据,我建议用快速排序。桶排序的平均复杂度是。
2023-07-30 16:40:04
173
原创 快速排序介绍
虽然快速排序的算法复杂度简单,但是也有弊端,对比冒泡排序来说(冒泡排序是稳定的),快速排序是不稳定的,但是快速排序基本上被认为是相同数量级的所有排序算法中,平均性能最好的。由C. A. R. Hoare在1960年提出。该算法使用广泛、效率很高,是最重要的排序算法之一。快速排序(Quicksort)是对冒泡排序(这个算法的算法复杂度基本都是。
2023-07-30 16:34:38
148
原创 简要介绍冒泡排序
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。来看看老师解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
2023-07-27 21:51:30
102
原创 keda P0077 二叉树深度
出每个节点的两个儿子节点,建立一棵二叉树(根节点为 1),如果是叶子节点,则输入。建好树后希望知道这棵二叉树的深度。是指从根节点到叶子结点时,
2023-07-24 15:04:45
99
原创 keda P0070 二叉树遍历(flist)
树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种 遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出。
2023-07-23 16:49:50
164
原创 keda P0069 小球(drop)
所以第一个球将会访问节点 1,节点 2 和节点 4,转变节点的布尔值后在在节点 8 停止。明显地,第三个球在它停止之前,会访问节点 1、2、5,在节点 10 停止。现在你的任务是,给定 FBT 的深度 D,和 I,表示第I 个小球下落,你可以假定I 不超过给定的 FBT 的叶子数,写一个程序求小球停止时的叶子序号。,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。最初,所有的节点都是。,当访问到一个节点时,如果这个节点是。
2023-07-23 13:15:33
92
原创 keda P0068 淘汰赛
个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军?给出各个国家的能力值,请问亚军是哪个国家。没有思路,就是一道简单的树结构的题。
2023-07-22 19:05:40
87
原创 keda P0064 递归-求斐波那契数列
斐波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面 2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。然后再main里调用就AC了。第二种(我直接放的CODE)
2023-07-20 18:01:56
140
1
原创 keda P0062 计算矩阵边缘元素之和
输入完后加一个if,来判断他的列表的列和列表的行是否不等于你分别输入的m,1与n,1。如果是,就把那个数赋值为0,判断后就加到一个变量里,最后在输出他。输入一个矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行以及第一列和最后一列的元素。
2023-07-20 15:38:30
107
1
原创 keda P0058 [USACO3.4] 美国血统 American Heritage
你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。)显然,这里的树不会有多于 26 个的顶点。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。树结构的题,先递归左边,然后递归右边,最后后序遍历左右根。树的中序遍历是按照左子树,根,右子树的顺序访问节点。树的前序遍历是按照根,左子树,右子树的顺序访问节点。树的后序遍历是按照左子树,右子树,根的顺序访问节点。
2023-07-19 21:40:05
82
原创 keda P0056 杨辉三角
首先要了解杨辉三角:https://k12.yangwajia.com/xuexi/doc/23761.html。给出正整数n(n≤20),输出杨辉三角的前 n 行。如果你不知道什么是杨辉三角,可以观察样例找找规律。看了这个再看这道题就会发现非常简单,可以运用公式。
2023-07-19 14:35:44
134
原创 keda P0055 奶牛的ISBN码
Farmer John的奶牛们喜欢看书,并且Farmer John发现在他的奶牛们稍微看了些有关于自然科学的书时,会产出更多的牛奶。要验证ISBN码的正确性,你要把第一个数字乘以十,你要把第二个数字乘以九,你要把第三个数字乘以八……比如说0201103311是一个合法的ISBN,因为10×0+9×2+8×0+7×1+6×1+5×0+4×3+3×3+2×1+1×1=55 前九个数字都在00到99之间。你的任务就是在给你丢失了一个数字的ISBN码之后,确定那个丢失的数字。
2023-07-19 14:31:22
335
原创 keda P0053 大小写转换
大家都知道一些办公软件有自动将字母转换为大写的功能。输入一个长度不超过 100 字符串,有可能带空格。要求将该字符串中的所有小写字母变成大写字母并输出。直接用ASCLL码的思路去做这个,普及一下,ASCII码表的空格是32,大写A是65,小写a是97。C++里面有个自带的函数可以帮助我们实现大小写转换,
2023-07-19 13:36:07
140
原创 keda P0052 抽奖
公司举办年会,为了活跃气氛,设置了摇奖环节。参加聚会的每位员工都有一张带有号码的抽奖券。现在,主持人从小到大依次公布 n 个不同的获奖号码,小谢看着自己抽奖券上的号码 win,无比紧张。请编写一个程序,如果小谢获奖了,请输出他中奖的是第几个号码;如果没有中奖,请输出0。没什么思路的,就定义一个数组然后判断就行了。
2023-07-19 13:25:08
156
原创 keda P0051 [NOIP2005普及组] 陶陶摘苹果
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有一张 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。这个10 表示数组大小是可以存10个int的数。但你就是不能用 a[10]。如果你定义的是a[10]
2023-07-18 15:23:58
103
原创 keda P0050 [语言题]sxy的分析
嗯,我们需要对截获到的信号进行傅里叶分析,以期望能够得到时空隧道那边的信息。但为了便于分析,我们最好先找到信号重复最小单位,因为信号就是以这样的最小单位为单位地重复,因此我们只需要分析这一段信号的最小重复单位,就能知道这段信号表达的意思了(因为整个信号都是按这个单位重复的)。“什么,正弦波信号!”sxy飞身而起,“看来错不了了,果然是那东西,错乱的线性空间内泄露来的正弦波信号,那就是通往线性世界的时空隧道,竟然跑到OI的世界里来了!“报告首领,我们已经成功截获到那边传来的非正常的,正弦波信号!
2023-07-18 14:43:30
143
原创 keda P0048 爬楼梯
一个楼梯有n 级,小苏同学从下往上走,一步可以跨一级,也可以跨两级。问:他走到第 n 级楼梯有多少种走法?其实就是递推,没啥好说的,当然也可以用斐波那契Fibonacci做。
2023-07-18 14:25:57
158
原创 keda P0047 斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,它指的是这样一个数列:0、1、1、2、3、5、8、13、21、34⋅⋅⋅,请编程序,求出这个数列的第N项的值是多少?众所周知,斐波那契数列从第二个数开始,每一个数都是前两个数字的和,所以我们可以定义一个数组,然后再用for循环解。理论存在,实践开始。
2023-07-18 13:33:55
137
原创 keda P0041 排队接水
这题因为说只有一个水龙头,而如果你要最快接完水,那么总共排队时间一定要是最短的,如果你要总排队时间最短,那就只能从小到大sort排序。
2023-07-16 11:16:32
97
2
原创 keda P0037 装载问题
这道题可以枚举每个集装箱,每次枚举时将重量累加并递归,传入当前的重量与集装箱编号,函数开始时判断是否超过最大重量,超过则return,之后用重量更新答案,这里可以加一个特判,当当前重量==最大重量时可以直接输出。退出函数后将累加的减掉。然后也可以用背包,只需把价值换成重量即可。
2023-07-16 11:06:52
144
原创 keda P0034 有重复元素的排列问题
读入之后,首先记录各个字母在字符串中出现的次数。这就相当于一个计数器,每次取出一个字母它的计数器就-1;然后开始搜索,注意每一层搜索是按照26个小写字母循环,如果计数器不等于0,就可以取用;
2023-07-15 15:48:04
97
原创 keda P0029 小鱼比可爱
里面的循环就是 j 从1 到 i (外层循环现在取到的是第几个数),一一跟外层循环取的数进行比较,有比较,是不是就可以计数了?至于为什么外层循环从2开始,是因为第一个数左边肯定没有数比它大,所以我们直接输出一个 0 就可以了。外层循环 i 从 2 到 n,表示从第二个数开始取,每取一个数就看一下这个数左边有几个数比它大。对与每个数,只跟左边的数比较。
2023-07-15 13:35:13
56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人