自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 插入排序算法

例如:int[] a = {5, 3, 2, 4, 1}, 把分成有序m(为了方便表示)和0无序n,m一开始没有元素,然后把n中的5插入到m中,你会发现5进入时不需要进行比较直接插入就行,所以可以把m设置为一开始存在a中的第一个元素,循环的次数从1开始。两个数组,把一个数组拆分成两部分,前面的是有序数组,后面的是无序数组,然后依次把后面无序的数组和前面有序的数组进行比较放到合适的位置,直到把最后一个数放入到有序数组中。2.插入的数大于比较的数不用交换,当前位置就是插入数有序数组的位置,然后退出循环。

2025-11-17 21:20:55 186

原创 冒泡排序算法

最坏 / 平均情况:O (n²)(完全逆序时,需遍历 + 交换 n (n-1)/2 次);(相同元素不会交换位置,如 [2, 2, 1] 排序后仍为 [1, 2, 2])。最好情况:O (n)(数组已有序,加 “提前终止” 优化后,仅需 1 次遍历);,重复此过程直到整个数组有序。空间复杂度: O(1)

2025-11-16 15:57:21 261 1

原创 选择排序算法

选择排序的核心思想是“每次从未排序区间中找到最小(或最大)的元素,放到已排序区间的末尾”,重复此过程直到整个数组有序。核心特点:不依赖额外空间(原地排序)、思路直观、交换次数少(仅需在找到最小元素后交换一次)。时间复杂度:O (n²)(无论最好 / 最坏情况,都需遍历所有未排序元素)。空间复杂度:O (1)(仅用常数个临时变量)。稳定性:不稳定排序(例如数组 [2, 2, 1],排序后第一个 2 会跑到第二个 2 后面)。

2025-11-10 20:03:42 149

原创 算法二分查找

核心思想是「分治」—— 通过不断将查找区间缩小一半,快速定位目标元素。(n 为集合长度),远优于线性查找的 O (n),但要求查找对象必须是。我们可以利用二分查找分别寻找这个值的左边界和右边界,然后返回。解题思路:结果返回某个值的起始位置和结束位置。二分查找是一种高效的。

2025-11-09 17:05:15 270

原创 C++算法

第一种情况:选中i的位置的分数,则动态规划公式为:dp[i-2] + b[i](当前位置的分数) (因为选中i位置,i-1位置就没办法选择,所以需要加上i-2位置的最大分数才是i位置的最大分数)这两种情况取最大值:dp[i] = max(dp[i - 2] + b[i], dp[i - 1]);(就是i位置的最大分数)解题思路:运用动态规划,dp[i]相当于i个数的最高分。第二种情况:不选择i位置,就是dp[i - 1]

2025-10-20 20:49:52 150

原创 操作系统简答题

答:虚拟内存是一种计算机系统内存管理技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。其主要作用是扩大内存空间,使得系统能够运行比实际物理内存更大的程序,提高内存的利用率,同时也便于多道程序的运行,使得多个程序可以共享物理内存。

2025-10-10 10:34:12 111

原创 考研操作系统

计算机系统大致分为4部分:硬件(又称为裸机包含:CPU、内存、硬盘、主板等)、操作系统、应用程序和用户。操作系统:是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便的接口与环境的程序集合。操作系统是计算机系统中最基础的系统软件。

2025-09-22 21:35:03 344

原创 河南萌新联赛2025第(四)场:河南大学

解题思路:C++代码:解题思路:C++代码:

2025-08-06 18:32:38 242

原创 做题小技巧

原理是:利用小数点后面的数加上0.5后能否大于1,大于则加1,小于则舍去。

2025-08-05 19:25:41 129

原创 2024年CCPC真题

答案是:在123456789d后面添加n个长度的0,例如n = 233,就在123456789d后面添加3个0,变成123456789d000。加过n个0后加上n,然后再减去(加上n后)的数除n的余数,最后结果为n的倍数,k = 最后的结果 / n。

2025-05-18 13:26:00 830

原创 常用算法的讲解

寻找规律:由题意得猴子每天吃一半的桃,然后再多吃一个,最后当第n天时桃剩余1个,当正推不容易时,就反推,通过反推可以得到规律为:第n天为1个,第n-1天为(第n天+1)*2, 第n-2天为:(第n-1天 + 1)* 2......,所以规律为:(f(n-1)+1) * 2.寻找上面的规律:上面的数是一个等差数列,A(n) = A(n - 1) + 3,前一项等于后一项加3.分子和分母规律大概相同,都是f(n) = f(n-1) + f(n-2),但是两个的返回条件不同。递归的条件为n == 1,返回1。

2025-05-17 11:55:30 356

原创 《算法题》

具体为质因数分解法,其核心思想在于:一个数末尾的 0 是由因数 2 和因数 5 相乘得到的,在 n!里,因数 2 的数量一般会比因数 5 多,所以 n!末尾连续 0 的个数取决于其中因数 5 的个数。解题思路:统计零的个数,就是统计2和5的个数,2*5 = 10, 4 * 25 = 100, 8 * 125 = 1000。的零的个数就是统计2和5的个数,统计其中个数的最小者,就是零的个数。

2025-05-08 22:41:09 256

原创 蓝桥杯赛后总结

每当拿到一道题时,我总会迫不及待的写代码,这样会使我写完这段代码,不知道下段代码应该这么写,所以当写题时,应该先好好分析这道题应该用什么方法去写,应该把整道题的解题流程都想出来后再去写代码。在第十六届蓝桥杯比赛中,第三题我分析错误了,原本是一道很简单的题目,由于我分析的错误,导致我错失了很多分,所以在分析题目时,一定要分析透彻,然后再进行写代码。每当看到一道题时,我不知道这道题应该用什么算法去解决,有种无从下手的感觉,所以我接下来应该多刷算法答题,多刷点有含金量的题。

2025-04-30 17:59:34 140

原创 位运算的运用

遵循 “相同为 0,不同为 1” 的规则:a ^ a = 0, a ^ 0 = a.:将每个字符的 ASCII 码与密钥异或,解密时再次异或密钥还原。解法:用二进制位表示灯泡状态(0 灭,1 亮),异或操作实现翻转。解法:异或所有元素,相同数异或为 0,最终结果为唯一数。利用异或修改二进制位的状态(如标记开关),适用于状态压缩。:初始全灭,每次翻转特定编号的灯泡状态,求最终状态。:通过异或生成子集的状态掩码(需结合位运算技巧)。原理:偶数二进制末位为 0,奇数为 1。时为偶数,否则为奇数。

2025-04-23 21:37:59 199

原创 力扣——数组

解题思路:运用sort()函数先进行排序,然后运用unique()函数把重复的元素放到最后,最后用erase()函数删除重复的元素。

2025-04-21 21:38:06 207

原创 PTA团体程序设计天梯赛-练习集(L1的题目)

【代码】PTA团体程序设计天梯赛-练习集(L1的题目)

2025-04-15 19:02:03 194

原创 蓝桥杯第十届C++B组真题

【代码】蓝桥杯第十届C++B组真题。

2025-04-11 17:45:22 202

原创 蓝桥杯第十一届C++B组真题

【代码】蓝桥杯第十一届C++B组真题。

2025-04-10 20:17:01 605

原创 蓝桥杯第十二届C++B组真题

【代码】蓝桥杯第十二届C++B组真题。

2025-04-09 21:43:06 208

原创 蓝桥杯第十三届C++B组真题

【代码】蓝桥杯第十三届C++B组真题。

2025-04-08 21:40:23 530

原创 蓝桥杯第十四届C++B组

【代码】蓝桥杯第十四届C++B组。

2025-04-08 19:39:55 313

原创 蓝桥杯第十五届C++B组真题

【代码】蓝桥杯第十五届C++B组真题。

2025-04-07 22:10:20 274

原创 蓝桥杯第八届C++B组真题

【代码】蓝桥杯第8届真题。

2025-04-05 18:05:34 285

原创 C++库函数的运用

n表示有几个二进制位,m是名称。

2025-04-02 20:08:33 240

原创 蓝桥杯第九届C++B组

解题思路:本题为填空题,2000能整除400,所以是闰年,闰年2月份有29天。5月4号是2000年的第几天就等于前4月的天数加上4,就是答案。那么,2000 年的 5 月 4 日,是那一年的第几天?2000 年的 1月1 日,是那一年的第 1 天。解题思路:寻找每个数能整除多少次2,能整除多少次5。最后输出其中最小的次方,就是乘积尾零的数量。

2025-04-01 21:31:07 1461

原创 题目:吸烟换烟

Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?用sum_smoke表示总的烟数,用surplus_smoke表示剩余的烟数,exchange_smoke表示兑换的烟数。每组测试数据一行包括两个整数 n,k(1<n,k≤108)。对于每组测试数据,输出一行包括一个整数表示最终烟的根数。把总的烟数和剩余的烟树初始化为n。用剩余的烟数计算能兑换的烟数,然后再加入总的烟数,再更新剩余的烟数,判断是否大于k。

2025-04-01 12:25:50 222

原创 小乐乐与字符串

大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子序列“CHN”的个数。子序列的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子序列。如“ABC”的子序列有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”。CH的数量就是自身加上C的数量(因为每出现一个H就可以和前面的C结合形成CH),CHN的数量就是自身加上CH的数量(因为每出现一个N就可以与前面出现CH结合形成CHN)。

2025-03-31 23:03:16 172

原创 校门外的树

某校大门外长度为 ll 的马路上有一排树,每两棵相邻的树之间的间隔都是 11 米。我们可以把马路看成一个数轴,马路的一端在数轴 00 的位置,另一端在 ll 的位置;已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。遍历每次输入的坐标u到坐标v(包含两个坐标)之间的树,判断是否移除,没有则进行移除。接下来 m 行,每行两个整数 u,v表示一个区域的起始点和终止点的坐标。输出一行一个整数,表示将这些树都移走后,马路上剩余的树木数量。最后用总的树减去移除的树就是剩余的树。

2025-03-31 21:37:41 245

空空如也

空空如也

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

TA关注的人

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