自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ DFS深搜详解

《C++深度优先搜索(DFS)算法详解》是一篇生动讲解DFS算法的技术文章。文章首先用"走迷宫"的比喻形象阐释了DFS"一条路走到黑,再回溯"的核心思想,随后详细介绍了DFS的递归和迭代两种实现方式,并提供了标准代码模板。通过"全排列"问题的实战演示,展示了DFS解决组合问题的典型应用场景。文章还对比了DFS与BFS的特性差异,列举了DFS的常见应用领域,最后给出了剪枝优化、状态记录等实用技巧。全文语言活泼风趣,在严谨的技术讲解中穿插了形象的类比,

2026-06-03 21:30:12 375

原创 均摊复杂度与常数因子实战陷阱

例如,一个时间复杂度为O(100n)的算法在实际运行时可能远慢于一个O(n²)但常数因子极小的算法,当n较小时。例如,在分析基于比较的排序算法时,一次“比较”操作的成本对于整数很小,但对于复杂的自定义对象(需要调用重载的。在时间与空间复杂度分析的理论基础之上,算法设计与工程实践中存在多个进阶考量维度与常见陷阱,这些内容在基础定义之外,构成了算法效能优化与稳健实现的关键。例如,字符串反转问题,分配一个新字符串是O(n)空间,原地交换是O(1)空间,但后者可能涉及指针操作和边界条件,增加错误风险。

2026-04-16 20:30:42 335

原创 构建哈夫曼树的贪心策略

c++哈夫曼树

2026-04-16 17:34:47 337

原创 排序算法大全:从冒泡到快排(C++ 图解 + 代码)

排序,是程序员日常工作中接触最频繁的操作之一。从数据库的 ORDER BY,到搜索引擎的结果排名,背后都离不开排序算法的身影。本文将带你系统梳理8 大经典排序算法📊 图解演示过程💻 C++ 完整代码⏱ 时间/空间复杂度分析🎯 适用场景总结废话不多说,开始!✅ 实现最简单,适合入门理解✅ 数据基本有序时,加swapped优化后接近 O(n)❌ 数据量大时性能差,不推荐实际使用✅ 交换次数少,只有 O(n) 次,适合交换代价大的场景❌ 比较次数始终是 O(n²),不受初始顺序影响。

2026-03-31 19:54:51 512

原创 c++阿克曼函数详解

你有没有想过,一个看起来只有三行的函数,竟然能让你的电脑算到"宇宙热寂"都得不出结果?今天我们来认识一个计算机科学史上鼎鼎大名的函数——阿克曼函数(Ackermann Function)。它不仅是递归的极致体现,更是可计算性理论中的重要案例。本文将带你从零认识它,并用 C++ 一步步实现。阿克曼函数由德国数学家于 1928 年提出,其定义如下:其中 mm 和 nn 均为非负整数。增长速度极其恐怖。特性说明定义方式双参数递归定义增长速度超过任意原始递归函数,极其恐怖实现挑战。

2026-03-31 19:32:45 467

原创 C++ 链表~

链表

2026-03-16 21:45:30 439

原创 本人的粉丝(正文在底部)

我的粉丝儿

2026-02-27 21:37:42 736

原创 小面包网站合集

蓝胖子分享免费网站合集

2026-02-12 21:19:36 373

原创 GESP六级考试手册

c++

2026-01-24 19:24:03 581

原创 神奇网站~

推荐了一个无需登录的实用工具网站maohaha神奇网站(99字)

2026-01-24 15:18:20 109

原创 GESP五级考试手册

!

2026-01-24 15:10:40 627

原创 GESP四级考试手册

c++四级

2026-01-24 14:44:13 666

原创 GESP三级考试大纲

祝你 2025 GESP 三级。

2025-07-29 21:16:11 1529

原创 c++高精度算法

(,,・∀・)ノ゛hello大家好。我是蓝胖子!今天给大家搞一个-高精度算法!!!!

2025-07-21 19:10:04 553

原创 GESP编程2级考试大纲

注:本文大部分来源于互联网,为(I蓝胖子I)编辑,无侵权涉及,无敏感词。本人全部文章免费,求个三连……

2025-07-20 19:56:40 1189

原创 c++冷知识

每个函数都有一个名为。

2025-07-20 19:15:59 473

原创 314343.最大回文数各位数和

题目要求找出≤n的最大回文数并计算其各位数字之和。解决思路:从n开始递减遍历,用isPalindrome函数判断回文数(通过数字反转比较),找到后调用sumDigits函数计算各位和(逐位取模累加)。时间复杂度O(n),空间复杂度O(1)。示例:输入11,输出2(因11是回文数,1+1=2)。该解法能有效处理给定范围内的最大回文数求和各问题。

2025-07-20 10:10:05 298

原创 前缀和讲解

下列代码执行完成之后,数组b中的最大值为(?i++)参考代码,下面描述正确的是( )int n, v;cin >> n;sum[0] = 0;i < n;

2025-03-07 20:05:38 1113

原创 二维数组转置

第一行两个整数 n,m 表示数组的行数和列数接下来 n 行,每行 m 个整数表示数组内容。

2025-03-07 19:37:47 501

原创 二维数组小技巧

但是我们在编写程序时,可能已经默认 ai 为 0 了,这会造成程序运行的错误,在这种情况下,我们需要先把 ai 的值设为 0。对于变量,如果不赋初始值会有一个默认值。那么数组中的元素是否有同样的性质呢?我们可以使用循环来实现这个功能。但实际上有一个专门处理这个问题的方法: memset。如果我们打开编译优化参数,然后直接运行这段程序,你可以看到后面输出的值可能并不为 0。注:本文来源于51nod,为I蓝胖子I编辑,如有侵权,请及时联系。邮箱:Qgp6957@126.com。代码运行结果详细注释。

2025-03-07 19:31:50 289

原创 51NOD矩阵加法

51NOD矩阵加法

2025-03-07 19:29:50 435

原创 完美方阵

第一行输入一个数 n ,表示一个方阵的行列数;之后 n 行,每行 n 个数,表示方阵中的每个元素 a[i][j] ,以空格隔开;若这个方阵是完美方阵,输出“ YES ”,否则输出“ NO ”。对于 30% 的数据, 1≤n≤10 , 0≤a[i][j]≤15;对于 50% 的数据, 1≤n≤20 , 0≤a[i][j]≤100;对于 100% 的数据, 1≤n≤50 , 0≤a[i][j]≤1000。样例输入样例输出样例YES样例中,对于每行: 3+4+8=7+2+6=5+9+1=15;

2025-03-07 19:22:20 391

原创 51NOD回文数

数字回文的判定,如果一个数字从左往右看和从右往左看是一样的,那么我们称这个数字是回文数字,例如 121,454454,67876,5,22 都是回文数字,而 223,56,10 就不是回文数字。现在读入一个数字 X ,请你写程序判断一下它是不是回文数字。输入数据输入一个正整数 X。输出数据如果 X 是回文数,输出 "yes";如果不是,输出 "no"。样例输入样例334533输出样例no。

2025-02-28 19:57:58 212

原创 逆置换 51nod

输入一个 1 到 n 的排列, p[1],p[2],...,p[n] ,即 1 到 n 都出现了 1 次的一个长度为 n 的数组 p。求数组 p 中,数字 1,2,3⋯n 出现的位置。输入数据第一行一个整数 n ,表示排列长度。接下来 n 行,每行一个整数 p[i] ,表示排列的内容。其中 1≤n≤1e5。输出数据第一行输出一个排列长度 n ,为了方便造数据。输出共 n 行,其中第 i 行包含一个整数 j ,使得 p[j]=i。样例输入样例44312输出样例4342。

2025-02-28 19:53:36 220

原创 逆序对个数1000

有一串数字,如果前面的数字比后面的数字大,那么就称这两个数为一对逆序对。输入一个长度为 n 的数组,输出逆序对的个数。也就是说问有多少对 (i,j) 满足 1≤i<j≤n ,且 a[i]>a[j]。输入数据第一行一个整数 n ,表示数组长度接下来 n 行,每行一个整数 a[i] ,表示数组的内容。输出数据输出一行一个数字,表示逆序对的个数。样例输入样例44312输出样例5读入数组 a,利用双重循环逐个比较元素的数值,并做计数。注意,为了不重复统计,每个数只同后面的数字进行比较。

2025-02-28 19:50:31 276

原创 【数组】排序

时间限制:1Sec内存限制:128MB。

2025-01-18 09:00:39 154

原创 岁月漫长,然而值得去创造:

大家好,我是你们熟悉的小罐头甜。旧的一年即将过去,新的一年即将到来。在崭新的2025年里,我相信大家会给csdn带来贡献。岁月漫长,然而值得去创造。希望大家在2025年里,去创造,去改变!再此,小罐头甜再次祝贺大家新年快乐,万事如意!

2025-01-17 19:30:28 165

原创 accoders 【一本通基础高精度】计算2的N次方

输入一个整数n,然后使用数组a来表示结果,初始时a[0]为1,然后将a乘以2进行n次,最后输出结果。1.从数组a的最高位开始,寻找第一个不为0的位置,并将从该位置开始到数组末尾的所有元素输出。3.如果数组c当前位置的值大于等于10,则将进位加到下一位上,并将当前位置的值取模10。2.然后遍历数组a的所有元素,将每个元素与b相乘,并将结果存放在数组c对应位置上。3.定义mul_short函数,用于将一个数组a乘以一个整数b,结果存放在数组c中。任意给定一个正整数N(N≤100),计算2的n次方的值。

2025-01-17 19:28:59 430

原创 数组转置!

首先,`transpose3x3`函数接收一个3x3的二维数组`matrix`作为参数,返回一个转置后的二维数组`transposed`。在`main`函数中,首先创建一个3x3的二维数组`matrix`用于存储输入的数据。接下来,调用`transpose3x3`函数对`matrix`进行转置,并将转置后的结果存储到变量`transposed`中。然后在`main`函数中,读取一个3x3的二维数组,调用`transpose3x3`函数进行转置,并将转置后的二维数组打印出来。1秒****128.0MB。

2025-01-17 19:16:50 244

原创 51nod 西湖游船

有n名游客在西湖游玩,现在他们要上船观光。现在有若干次游客上下船的操作,请统计一下整个过程中船所承受过的最大总重量是多少。接下来m行,每行一个1到n之间的整数,表示游客的编号。表示该游客的上/下船,如果该游客已经在船上,那么该游客就下船,反之就上船。输出一个整数表示整个上下船过程中,船所受到的最大重量。第一行输入三个整数n(1≤n≤20),m(1≤m≤500)和W(1≤W≤10000)。接下来n行输入n名游客的重量c[i](1≤c[i]≤1000)。

2025-01-17 18:59:36 358

原创 丢失的数字

这需要一个双重循环来做,内层循环1−m,外层循环1−n。如果n的范围是10w,这两重循环总的循环次数就是50​亿。第一行2个整数n,m,直接用空格分隔(1≤n≤100000,m<n),表示有m个1到n之间的整数。接下来m行,每行一个整数ai(1≤ai≤n,数据保证m个数都不相同)。给你m个1到n之间的整数,你能找出1到n中的哪些整数没有出现吗?每行1个数,从小到大输出输入数据中没有出现过的1到n中的整数。

2025-01-17 18:51:47 454

原创 分数约分!

分数约分进阶习题小Z是个小学生,最近刚刚学习到了分数的知识,他苦恼于将分数化简,现在需要写一个程序来帮助他...输入数据两个整数ab(分别表示分子,分母。输出数据两个整数xy(分别表示值为a/b的最简分数的分子与分母)样例输入样例62输出样例31运行时间限制:不超过1秒内存使用限制:不超过128.0MB。

2025-01-17 18:46:25 496

原创 最小公倍数LCM

这里有一个特别需要注意的点是,由于A,B的数据范围是1e9,因此他们的最小公倍数最坏情况下可能达到1e18,超出了int的数据范围,因此直接计算会造成int溢出,所以要用longlong来处理计算。输入2个正整数A,B,求A与B的最小公倍数。2个数A,B,中间用空格隔开。(1≤A,B≤109)输出A与B的最小公倍数。

2025-01-17 18:43:03 224

原创 最大公约数GCD

输入2个正整数A,B,求A与B的最大公约数。输入数据2个数A,B,中间用空格隔开。输出数据输出A与B的最大公约数。样例输入样例30105输出样例15运行时间限制:不超过1秒内存使用限制:不超过128.0MB。

2025-01-17 18:40:17 222

原创 ---树---

树

2025-01-17 18:36:28 157

原创 accoders 【字符串】数字OR字符?

然后,使用s.size()函数获取字符串s的长度,并将结果赋值给变量len。接下来,使用for循环遍历字符串s的每个字符,并使用cout输出每个字符,空格分隔。然后,使用for循环从字符串s的最后一个字符开始遍历到第一个字符,并使用cout逆序输出每个字符。题解:这段代码的功能是读取一个字符串并输出字符串的长度,然后按照顺序输出字符串的每个字符,并最后按照逆序输出字符串的每个字符。该代码可以用来演示如何读取和处理字符串,以及如何计算字符串的长度,按照顺序和逆序输出字符串的每个字符。

2025-01-17 18:33:33 213

原创 accoders 【一本通基础高精度】大整数减法

首先,定义了常量N和maxn,分别表示输入的字符串最大长度和大整数的最大位数。通过clear函数将数组a、b和c中的元素全部初始化为0,保证数据的清空。具体来说,从低位到高位遍历两个数组a和b,将对应位相减,并考虑借位的情况,将结果保存在数组c中。最后,通过print函数将数组c输出,即输出了两个大整数相减的差。整体上,这段代码的时间复杂度为O(maxn),其中maxn表示大整数的最大位数。空间复杂度为O(maxn),即需要创建三个长度为maxn+1的数组。求两个大的正整数相减的差。

2025-01-17 18:19:23 329

原创 51nod 上台阶 easy

现在小瓜想通过台阶走上平台,最底层(小瓜所在的层)编号为1,最顶层编号为n。由于小瓜的腿比较短,他一次只能向上走1级或者2级台阶。我们可以定义一个数组dp,其中dp[i]表示小瓜走上第i级台阶的方案数。因此,小瓜走上第i级台阶的总方案数为dp[i]=dp[i-1]+dp[i-2]。根据以上分析,我们可以使用动态规划的思想来求解小瓜走上n级台阶的方案数。对于100%的数据,2≤n≤25;对于28%的数据,2≤n≤10;对于12%的数据,2≤n≤5;

2025-01-17 18:06:22 335

原创 luogu P1035 [NOIP2002 普及组] 级数求和

1nSn​=1+21​+31​+…显然对于任意一个整数kk,当nn足够大的时候,Sn>kSn​>k。这段代码使用了数学上的无穷级数的思想,通过不断累加1/1,1/2,1/3,...直到和大于等于k时,得到最小的n值。3.进入一个for循环,循环条件是a<=k,循环变量a从0.00开始,每次循环a增加1.0/n。这段代码的功能是计算当1+1/2+1/3+...+1/n的和大于等于k时,n的最小值。现给出一个整数kk,要求计算出一个最小的nn,使得Sn>kSn​>k。

2025-01-17 18:04:54 332

原创 【字符串】字符串正反连接

时间限制: 1 Sec 内存限制: 128 MB。

2025-01-17 15:35:59 323

小面包网站合集-现版本-V3.2

请大家尊重原创!

2026-05-19

小面包网站合集-现版本-V3.1

请大家尊重原创!

2026-03-31

小面包网站合集-现版本-V3.0

请大家尊重原创!

2026-03-24

小面包网站合集-现版本-V2.9

请大家尊重原创!

2026-03-14

小面包网站合集-现版本-V2.8

请大家尊重原创!

2026-03-04

小面包网站合集-现版本-V2.7

请大家尊重原创!

2026-02-27

小面包网站合集-现版本-V2.6

请大家尊重原创!

2026-02-22

小面包网站合集-现版本-V2.5

请大家尊重原创!

2026-02-14

小面包网站合集-现版本-V2.4

请大家尊重原创!

2026-02-13

小面包网站合集-现版本-V2.3

请大家尊重原创!

2026-02-12

空空如也

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

TA关注的人

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