自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 插入排序讲解

【代码】插入排序讲解。

2023-08-02 17:28:41 723

原创 算法:DFS【深度优先搜索】

一种用于遍历或者搜索树或图的算法。沿着树的深度遍历树的所有节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或在搜寻时结点不满足条件,则搜索将回溯到发现节点v的那条边的起始节点。整个进程将反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法复杂度为。完全可以用DFS解决,在前面的keda题解里提到过。当然,讲的是DFS,就看看大佬的解法。

2023-08-01 11:48:45 167

原创 桶排序(Bucket Sort)

桶排序(Bucket Sort)又称箱排序,是一种比较常用的排序算法。其算法原理是将数组分到有限数量的桶里,再对每个桶分别排好序(可以是递归使用桶排序,也可以是使用其他排序算法将每个桶分别排好序),最后一次将每个桶中排好序的数输出。但是弊端就是桶排序很浪费空间,比如说排序一亿个数 ,桶排序就要一亿个桶,很浪费,而冒泡排序就要一亿秒(好像就是),达到117天!所以对于这种很大的数据,我建议用快速排序。桶排序的平均复杂度是。

2023-07-30 16:40:04 125

原创 快速排序介绍

虽然快速排序的算法复杂度简单,但是也有弊端,对比冒泡排序来说(冒泡排序是稳定的),快速排序是不稳定的,但是快速排序基本上被认为是相同数量级的所有排序算法中,平均性能最好的。由C. A. R. Hoare在1960年提出。该算法使用广泛、效率很高,是最重要的排序算法之一。快速排序(Quicksort)是对冒泡排序(这个算法的算法复杂度基本都是。

2023-07-30 16:34:38 101

原创 简要介绍冒泡排序

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。来看看老师解释:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

2023-07-27 21:51:30 63

原创 keda P0079 【排序模板】冒泡排序

个数从小到大进行排序。输入和输出同P0078。

2023-07-25 11:58:00 50

原创 keda P0078 【排序模板】插入排序

个数从小到大进行排序,

2023-07-24 21:49:49 56

原创 keda P0077 二叉树深度

出每个节点的两个儿子节点,建立一棵二叉树(根节点为 1),如果是叶子节点,则输入。建好树后希望知道这棵二叉树的深度。是指从根节点到叶子结点时,

2023-07-24 15:04:45 70

原创 keda P0075 数字和

求各位上的数字和。

2023-07-24 14:57:13 79

原创 keda P0070 二叉树遍历(flist)

树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种 遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出。

2023-07-23 16:49:50 131

原创 keda P0069 小球(drop)

所以第一个球将会访问节点 1,节点 2 和节点 4,转变节点的布尔值后在在节点 8 停止。明显地,第三个球在它停止之前,会访问节点 1、2、5,在节点 10 停止。现在你的任务是,给定 FBT 的深度 D,和 I,表示第I 个小球下落,你可以假定I 不超过给定的 FBT 的叶子数,写一个程序求小球停止时的叶子序号。,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。最初,所有的节点都是。,当访问到一个节点时,如果这个节点是。

2023-07-23 13:15:33 71

原创 keda P0068 淘汰赛

个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军?给出各个国家的能力值,请问亚军是哪个国家。没有思路,就是一道简单的树结构的题。

2023-07-22 19:05:40 60

原创 keda P0067 质因数分解

用递归方法从小到大输出它的所有质因子(因子是质数)。

2023-07-22 19:00:28 146

原创 keda P0066 辗转相除法求最大公约数

求它们的最大公约数。

2023-07-21 14:33:05 64

原创 keda P0065 递归-爬楼梯

楼梯有N 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。

2023-07-21 14:26:06 75

原创 keda P0064 递归-求斐波那契数列

斐波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面 2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。然后再main里调用就AC了。第二种(我直接放的CODE)

2023-07-20 18:01:56 84 1

原创 keda P0063 递归求阶乘

编程求 n 阶乘的值。

2023-07-20 17:54:49 72

原创 keda P0062 计算矩阵边缘元素之和

输入完后加一个if,来判断他的列表的列和列表的行是否不等于你分别输入的m,1与n,1。如果是,就把那个数赋值为0,判断后就加到一个变量里,最后在输出他。输入一个矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行以及第一列和最后一列的元素。

2023-07-20 15:38:30 64

原创 keda P0061 矩阵转置

输入一个二维矩阵,行数和列数都小于100。输出二维矩阵的转置。

2023-07-20 15:32:04 81

原创 keda P0058 [USACO3.4] 美国血统 American Heritage

你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。)显然,这里的树不会有多于 26 个的顶点。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。树结构的题,先递归左边,然后递归右边,最后后序遍历左右根。树的中序遍历是按照左子树,根,右子树的顺序访问节点。树的前序遍历是按照根,左子树,右子树的顺序访问节点。树的后序遍历是按照左子树,右子树,根的顺序访问节点。

2023-07-19 21:40:05 60

原创 keda P0056 杨辉三角

首先要了解杨辉三角:https://k12.yangwajia.com/xuexi/doc/23761.html。给出正整数n(n≤20),输出杨辉三角的前 n 行。如果你不知道什么是杨辉三角,可以观察样例找找规律。看了这个再看这道题就会发现非常简单,可以运用公式。

2023-07-19 14:35:44 68

原创 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 231

原创 keda P0053 大小写转换

大家都知道一些办公软件有自动将字母转换为大写的功能。输入一个长度不超过 100 字符串,有可能带空格。要求将该字符串中的所有小写字母变成大写字母并输出。直接用ASCLL码的思路去做这个,普及一下,ASCII码表的空格是32,大写A是65,小写a是97。C++里面有个自带的函数可以帮助我们实现大小写转换,

2023-07-19 13:36:07 89

原创 keda P0052 抽奖

公司举办年会,为了活跃气氛,设置了摇奖环节。参加聚会的每位员工都有一张带有号码的抽奖券。现在,主持人从小到大依次公布 n 个不同的获奖号码,小谢看着自己抽奖券上的号码 win,无比紧张。请编写一个程序,如果小谢获奖了,请输出他中奖的是第几个号码;如果没有中奖,请输出0。没什么思路的,就定义一个数组然后判断就行了。

2023-07-19 13:25:08 101

原创 keda P0051 [NOIP2005普及组] 陶陶摘苹果

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有一张 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。这个10 表示数组大小是可以存10个int的数。但你就是不能用 a[10]。如果你定义的是a[10]

2023-07-18 15:23:58 56

原创 keda P0050 [语言题]sxy的分析

嗯,我们需要对截获到的信号进行傅里叶分析,以期望能够得到时空隧道那边的信息。但为了便于分析,我们最好先找到信号重复最小单位,因为信号就是以这样的最小单位为单位地重复,因此我们只需要分析这一段信号的最小重复单位,就能知道这段信号表达的意思了(因为整个信号都是按这个单位重复的)。“什么,正弦波信号!”sxy飞身而起,“看来错不了了,果然是那东西,错乱的线性空间内泄露来的正弦波信号,那就是通往线性世界的时空隧道,竟然跑到OI的世界里来了!“报告首领,我们已经成功截获到那边传来的非正常的,正弦波信号!

2023-07-18 14:43:30 99

原创 keda P0048 爬楼梯

一个楼梯有n 级,小苏同学从下往上走,一步可以跨一级,也可以跨两级。问:他走到第 n 级楼梯有多少种走法?其实就是递推,没啥好说的,当然也可以用斐波那契Fibonacci做。

2023-07-18 14:25:57 105

原创 keda P0047 斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列,它指的是这样一个数列:0、1、1、2、3、5、8、13、21、34⋅⋅⋅,请编程序,求出这个数列的第N项的值是多少?众所周知,斐波那契数列从第二个数开始,每一个数都是前两个数字的和,所以我们可以定义一个数组,然后再用for循环解。理论存在,实践开始。

2023-07-18 13:33:55 78

原创 keda P0046 高个子人数

【代码】keda P0046 高个子人数。

2023-07-17 15:09:28 108

原创 keda P0045 求最小数和最大数

新开两个变量,然后写个if的分支结构与a[i]比较,保证最大或最小,输出它们就可以了。

2023-07-17 15:03:08 53

原创 keda P0043 最大整数

【代码】keda P0043 最大整数。

2023-07-16 19:58:47 75

原创 keda P0042 [NOIP2007普及组] 纪念品分组

【代码】keda P0042 [NOIP2007普及组] 纪念品分组。

2023-07-16 19:55:04 57

原创 keda P0041 排队接水

这题因为说只有一个水龙头,而如果你要最快接完水,那么总共排队时间一定要是最短的,如果你要总排队时间最短,那就只能从小到大sort排序。

2023-07-16 11:16:32 70 2

原创 keda P0037 装载问题

这道题可以枚举每个集装箱,每次枚举时将重量累加并递归,传入当前的重量与集装箱编号,函数开始时判断是否超过最大重量,超过则return,之后用重量更新答案,这里可以加一个特判,当当前重量==最大重量时可以直接输出。退出函数后将累加的减掉。然后也可以用背包,只需把价值换成重量即可。

2023-07-16 11:06:52 92

原创 keda P0034 有重复元素的排列问题

读入之后,首先记录各个字母在字符串中出现的次数。这就相当于一个计数器,每次取出一个字母它的计数器就-1;然后开始搜索,注意每一层搜索是按照26个小写字母循环,如果计数器不等于0,就可以取用;

2023-07-15 15:48:04 59

原创 keda P0033 N 皇后问题(输出皇后列号)

这玩意虽然递归可以做,但是我有办法,看得懂就看。

2023-07-15 15:45:36 69

原创 keda P0032 组合的输出

【代码】keda P0032 组合的输出。

2023-07-15 15:43:08 63

原创 keda P0031 N皇后问题(输出方案个数)

虽然是L3的题,但是打表就可以了。

2023-07-15 15:42:09 84

原创 keda P0030 数组逆序输出

【代码】keda P0030 数组逆序输出。

2023-07-15 13:40:00 41

原创 keda P0029 小鱼比可爱

里面的循环就是 j 从1 到 i (外层循环现在取到的是第几个数),一一跟外层循环取的数进行比较,有比较,是不是就可以计数了?至于为什么外层循环从2开始,是因为第一个数左边肯定没有数比它大,所以我们直接输出一个 0 就可以了。外层循环 i 从 2 到 n,表示从第二个数开始取,每取一个数就看一下这个数左边有几个数比它大。对与每个数,只跟左边的数比较。

2023-07-15 13:35:13 30

空空如也

空空如也

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

TA关注的人

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