自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速幂算法(取模),C语言,C++编程

【代码】快速幂算法(取模),C语言,C++编程。

2024-05-25 23:42:11 297

原创 图广度优先遍历BFS,迷宫最短路径,C语言,C++编程

从起点出发,只能向右、向下、向左、向上移动一个方格,黑色方格为障碍物,不能通过。求到达终点的最短路径,并输出最短路径。

2024-05-25 23:41:34 440

原创 邻接矩阵,队列queue,图广度优先遍历 BFS,C语言,C++编程

通过邻接矩阵,和队列(queue)实现图的广度优先遍历(BFS)

2024-05-25 23:40:29 149

原创 邻接矩阵,栈,图深度优先遍历DFS,C语言,C++ 编程

使用邻接矩阵数据结构,借助栈(Stack),实现图的深度优先遍历(DFS)

2024-05-25 23:39:21 196

原创 邻接矩阵,图深度优先遍历,递归DFS,C语言,C++编程

使用邻接矩阵数据结构,通过递归算法实现图的深度优先遍历(DFS)

2024-05-24 12:44:38 417

原创 背包:多重背包,C语言,C++编程

有 N 种物品和一个容量为 C 的背包。第 i 种物品最多有 p[i] 件可用,每件重量是 w[i],价值是 v[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且总价值最大。多重背包就是把完全背包的数量 k 规定在 p[i] 的范围内。

2024-05-24 12:43:43 268

原创 背包算法:完全背包,C语言,C++编程

有 N 种物品,已知各件物品的重量和价值,第 i 种物品的重量为 wᵢ 和价值为 vᵢ。(物品不可分割,要么取,要么不取,每种物品都可取任意件)。今有一背包,能装下每种物品的重量为 C ,问如何选若干件物品,总重量不超过 C,总价值达到最大。

2024-05-24 12:43:12 253

原创 背包算法:01背包,C语言,C++编程

有 N 件物品,已知第 i 件物品的重量和价值分别对应为 wᵢ 和 vᵢ。(不可分割,要么取,要么不取)。有一背包,能装下的重量为 C,问如何选若干件物品,总重量不超过C,总价值达到最大。第一行输入背包容量 C 和物品数量 N;然后每行输入对应物品的重量和价值。输出背包能装的最大总价值。

2024-05-24 12:42:41 287

原创 动态规划-最长公共子序列,C语言,C++编程

其定义是:一个序列 S ,如果分别是两个或多个已知序列的子序列,且所有符合此条件序列中最长的,则 S 为已知序列的最长公共子序列。最长公共子序列(Longest Common Subsequence,LCS)又叫最长公共子串(不要求连续)。第一行输入字符串 S1 ,第二行输入字符串 S2。输出最长公共子序列的长度。

2024-05-24 12:42:09 346

原创 动态规划-拦截导弹,C语言,C++编程

更多算法和资料,查看原文链接某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以如果只有一套系统,有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。【输入描述】输入2行。第一行导弹的数量,第二行导弹的

2024-05-24 12:41:35 310

原创 动态规划-数塔,C语言,C++编程

有一个层数为 n(n≤1000)的数字三角形(如下图)。从顶层开始向下走,每走下一级时,可向左下方向或右下方向走。求走到底层后它所经过数字的总和的最大值。

2024-05-24 12:41:05 317

原创 分治算法-棋盘覆盖,C语言,C++编程

在一个 2ᵏ × 2ᵏ 个方格组成的棋盘中,若恰有一个方格与其他方格不同(图中标记为 -1 的方格),则称该方格为特殊方格。现在用 L 型(占3个小方格)纸片覆盖棋盘上除特殊方格的所有部分,各纸片不得重叠,于是用到的纸片数恰好是 (4ᵏ - 1) / 3。写一个程序,求覆盖方案。如在下图中,给出的一个覆盖方案中,k = 2 ,那么就是 4 × 4 个方格,那么纸片数恰好是 5 个。输入第一行为方阵的规模,也就是数组的行列值。输入第二行两个整数,表示特殊方格的行列下标。输出覆盖后的棋盘数组。

2024-05-24 12:40:11 287

原创 分治算法-逆序对数量,C语言,C++编程

求序列的逆序对数,即有多少个有序对 (i, j) 满足 i < j 且 aᵢ > aⱼ ,其中 n ≤ 10⁶。输入一个 n 个数的序列 {a1, a2, a3, …第一行为元素个数 n;第二行是每个元素的值;

2024-05-24 12:39:22 305

原创 贪心算法-排队打水,C语言,C++编程

有 N 个人排队到 R 个水龙头去打水,他们装满水桶的时间为整数 T1,T2,…,Tn,且各不相等,应如何安排他们的打水顺序才能使他们花费的总时间最少?T越小的人,打水越要靠前。(每个人 T总时间 = T每个人打水时间 + T每个人等待时间)第一行输入 N 个人,和水龙头数量 R;第二行输入每个水桶装满水的时间T。输出打水总的花费时间。

2024-05-24 12:38:48 927

原创 贪心算法-部分背包,C语言,C++编程

有 n 件物品和一个容量为 C 的背包。第 i 件物品的重量是 w[i],对应的价值是 v[i]。物品可以分割,求解将哪些物品装入背包,可使物品总价值最大,但是不能超过总容量。第一行输出可以装入背包的物品重量;第二行输出装入背包物品的总重量。每次选取单位重量价值(因为物品可分隔)最大的物品装入。

2024-05-24 12:38:13 424

原创 递推算法,斐波那契数列,C语言,C++编程

斐波那契(Fibonacci)数列的应用非常多。

2024-05-24 12:37:32 423

原创 递归算法,汉诺塔,C语言,C++编程

在 a 柱子中从小到大放 n 个盘子,现要求把所有的盘子从 a 柱子全部移到 c 柱子。移动规则是:使用 b 作为过渡,每次只移动一块盘子,且每个柱子上不能出现大盘压小盘,找出移动次数最小的方案。输入柱子的数量,和每个柱子的符号,用空格隔开。已知有三个柱子用 a、 b、 c 表示。输出若干行,分别表示移动盘子的过程。

2024-05-24 12:36:57 363

原创 递归算法,上台阶,C语言,C++编程

最后是一步上1个台阶的话,之前上了n-1个台阶,走法为f(n-1)种,而最后是一步上2个台阶的话,之前上了n-2个台阶。楼梯有 n 阶台阶,上楼可以一步上 1 阶,也可以一步上 2 阶,计算共有多少种不同的走法?输入台阶数量 n。输出爬台阶的方法数。

2024-05-24 12:36:21 359

原创 查找被移除的元素

公差为 1 的等差升序数列,将数列输入到程序的数组时移除了⼀个元素,导致长度为n的升序数组可能不再连续,除非被移除的是第一个或最后一个元素。需要在数组不连续时,找出被移除的元素。第一行是数组大小 n ,第二是数组元素,用空格分开。输出若一行,输出被删除的元素。

2024-05-24 12:35:31 750

原创 二分法查找最左和最右,C语言,C++编程

小于等于 6 最靠右的位置(元素是5,下标是2);比如小于等于 8 最靠右的位置(元素是7,下标是 3)。大于等于 6 最靠左的位置(是元素7,位置是3);比如大于等于 8 最靠左的位置(是元素9,位置是5)。1、满足大于等于 target 最靠左的位置;2、满足小于等于 target 最靠右的位置;比如 1 4 5 7 8 9 11 13。

2024-05-23 18:07:02 213

原创 二分查找算法,C语言,C++编程

4、如果中间元素大于目标元素,说明目标元素可能在左半部分,将右边界移动到中间元素的左侧。5、如果中间元素小于目标元素,说明目标元素可能在右半部分,将左边界移动到中间元素的右侧。第三行是要查找的元素。输出若一行,输出查找元素在已排序数组中的下标,如果不在数组中输出 -1。6、重复步骤2-5,直到找到目标元素或者左边界超过右边界,表示查找失败。1、首先,确定查找范围的左右边界,通常为数组的起始和结束位置。3、如果中间元素等于目标元素,查找成功,返回索引。2、计算中间元素的索引,将其与目标元素进行比较。

2024-05-23 18:06:18 305

原创 顺序查找,C语言,C++编程

第一行是数组大小 n ,第二是数组元素,用空格分开;第三行是询问的次数;后续输入若干行,分别是要查找的元素。顺序查找的算法比较直接,就是遍历数组,从头开始找。但是如果数据量比较大,很显然是比较慢的。输出若干行,输出查找元素是否在数组中,如果在,输出1,否则输出0。

2024-05-23 18:04:25 153

原创 高精度除法,C语言,C++编程

输入A和B,用空格隔开。其中:0 ≤ A ≤ 10^5000,1≤ b ≤10^9。输入两个整数 A(大数) 和 b(小数),输出它们的商。高精度运算:A / B 高精度。

2024-05-23 18:03:33 199

原创 高精度乘法,C语言,C++编程

分别在两行内输入两个2000位以内的十进制非负整数,求他们的乘积。输入 A 和 B,用空格隔开。高精度运算:A * B 高精度。

2024-05-23 18:02:19 166

原创 高精度减法,C语言,C++编程

两个整数 A 和 B(第二个可能比第一个大),求他们的差(是负数要输出负号)。输入A和B,用空格隔开。

2024-05-23 18:01:40 165

原创 高精度加法,C语言,C++编程

分别在两行内输入两个500位以内的十进制非负数,求它们的和。输入 A 和 B,用空格隔开。高精度运算:A + B 高精度。

2024-05-23 18:00:56 93

原创 排序sort函数,C语言,C++编程

compare_fun 是 greater() 表示降序。compare_fun 自定义返回 bool 类型。排序函数 sort(begin, end, compare_fun) ,可以对数组、vector排序。默认升序,区间左闭右开 [begin, end)。

2024-05-23 18:00:03 375

原创 归并排序算法,C语言,C++编程

第一行输入数组大小 n。第二行输入 n 个数字。归并排序,时间复杂度是 O(nlogn)

2024-05-23 17:59:09 136 1

原创 查找第k小元素,C语言,C++编程

利用快速排序中的一个性质,即将主元素放在正确的位置,使得左边的数都比主元素小,右边的数比元素大,这样会产生一个性质:该数后面是不会移动的,即该数落在排序后的正确位置,也就是序列中第k小的数。用 k 表示位置,如果下标是从1开始的话,那么第4小的元素就是7,也就是说一趟快速排序就确定了k的位置,后面就不需要递归了。第一行是数组大小 n 和 k,第二是数组元素,用空格分开;输出若一行,输出数组中的第 k 小元素。

2024-05-23 17:58:20 157 1

原创 快速排序算法,C语言,C++编程

快速排序,平均时间复杂度为O(nlogn),最坏的情况下,时间复杂度为O(n²)第一行输入数组大小 n ,第二行输入 n 个数字。

2024-05-23 17:57:35 148 1

原创 希尔排序算法,C语言,C++编程

希尔排序是一种插入排序的改进版。最坏情况下的时间复杂度是O(n²),平均时间复杂度可以达到 O(nlogn)。第一行输入数组大小 n ,第二行输入 n 个数字。

2024-05-23 17:56:45 154 1

原创 插入排序算法,C语言,C++编程

第一行输入数组大小 n ,第二行输入 n 个数字。插入排序,时间复杂度为O(n²)

2024-05-23 17:55:19 133 1

原创 选择排序算法,C语言或C++编程

第一行输入数组大小 n。第二行输入 n 个数字。选择排序算法的时间复杂度为O(n²)

2024-05-23 17:54:26 123 1

原创 冒泡排序算法,C语言或C++编程

第一行输入数组大小 n。第二行输入 n 个数字。冒泡排序算法的时间复杂度为O(n²)

2024-05-23 17:53:11 125 1

原创 爱码岛编程:判断闰年

C++ 编程判断闰年

2024-05-16 19:18:47 368

原创 C++编程题:序列求和

序列求和,快速幂

2024-05-08 22:20:27 195 1

原创 用费马小定理和快速幂算法,求 a 在模 p 下的乘法逆元

用费马小定理和快速幂算法,求 a 在模 p 下的乘法逆元。

2024-05-08 15:30:11 210 1

原创 C++编程信奥赛一本通:1031-1032-1033-1034-1035

一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。),那么请问这个三角形的面积是多少,精确到小数点后两位。将一个三位数反向输出,例如输入358,反向输出853。平面上有一个三角形,它的三个顶点坐标分别为(x。),求线段AB的长度,保留到小数点后3位。已知线段的两个端点的坐标A(X。1031-反向输出一个三位数。1035-等差数列末项计算。给出一个等差数列的前两项a。1034-计算三角形面积。1033-计算线段长度。,求第 n 项是多少。

2023-10-30 14:55:32 460

原创 C++编程信奥赛一本通:2071-2072-2073-1029-1030

如果去掉一个最低分,这名参赛者的平均分为9.8分;传说古代的叙拉古国王海伦二世发现的公式,利用三角形的三条边长来求取三角形面积。计算两个双精度浮点数a和b的相除的余数,a和b都是双精度浮点数。这里余数(r)的定义是:a=k×b+r,其中k是整数,0≤r<b。已知某班有男同学x位,女同学y位,x位男生平均分是87分,y位女生的平均分是85,问全体同学平均分是多少分?现给定 r,即球半径,类型为double,求球的体积V,保留到小数点后2位。对于半径为 r 的球,其体积的计算公式为V=(4/3) * πr。

2023-10-30 14:55:01 760

原创 C++编程信奥赛一本通:1025-1026-1027-1028-2070

读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。输入一个三位数,要求把这个数的百位数与个位数对调,输出对调后的数。给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。读入一个双精度浮点数,保留12位小数,输出这个浮点数。1025-保留12位小数的浮点数。1027-输出浮点数。

2023-10-30 14:54:31 292

空空如也

空空如也

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

TA关注的人

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