- 博客(12)
- 收藏
- 关注
原创 字符串的处理
呃,这样做就没处理第一行的换行,也就是'\n'这个东西,解决方法很多,也很好想,例如getchar()又或者n++一下反正只需要把后面那个换行处理了就行了,但奈何当时没注意到,而且非常的自信,又是oi赛制,呃结果就是长了个记性。我发现自己跟字符串结下了不解之缘了,每次做字符串类型的题目都能遇到不同样的问题。唉,今天整理一下自己做字符串类型的题目踩过的坑吧。这道题,给你们看看我当时的做法。
2025-04-09 22:23:48
170
原创 欧拉筛与数组超限
欧拉筛是一种找素数的方式,传统找素数的时间太慢没法满足题目的时间需求所以我们就会学习筛法来提升我们的代码质量。但是我在欧拉筛中遇到了一些小问题,百思不得其解最后询问我的学长也是被轻松解决了。今天在试的时候发现当N大一些(大约N=500001)的时候第一个素数就会从2变成1,原因是数组越界可能会导致首位被修改,所以我们只需要后面特别修改或者是不用数组首位就可以解决问题了。嗯,非常的板子,我在代码本身也没找到什么错误,但是每次用到来做题都会报错。
2025-04-09 22:08:12
207
原创 辗转相除法
辗转相除法是求两个数的最大公因数的方法,时间复杂度低,而且也不复杂所以非常有必要学习一下,其核心思想就是一个较大数去除以一个较小数,然后较大数更新为刚刚到较小数,较小数则更新为刚才所得余数,如果余数为0那么就说明已经找到了最大公因数。都可以迭代下去,用前两个数用辗转相除法所得的最大公因数来对第三个数继续使用辗转相除法,以此类推就可以推广至多个数。且没必要纠缠哪个数大,直接把俩数放进去就行,不过是多循环一次,少循环一次的问题,不差这点时间。而且该用法可以推广至多个数,例如三个数,四个数,多少个数都行。
2025-04-08 14:01:21
141
原创 二分查找模板
二分查找的基本思想是:将数组从中间分成两部分,然后将目标元素与中间元素进行比较。如果目标元素等于中间元素,那么查找成功;如果目标元素小于中间元素,那么在左半部分继续查找;如果目标元素大于中间元素,那么在右半部分继续查找。重复这个过程,直到找到目标元素或者确定目标元素不存在。我看别人的二分查找模板都有两个而且要注意的比较多,所以我就来分享一下自己的二分查找,我自己觉得非常好用,而且不需要特别注意什么。二分查找是一种在有序数组中查找某一特定元素的搜索算法。这样就不要在意用哪一个模板了,所以非常的方便。
2025-04-02 21:30:06
172
原创 二分答案模板
二分答案的基本思路是:对于一个在给定范围内的整数问题,我们首先确定一个中间值,然后判断这个中间值是否是问题的答案。如果不是,我们根据问题的条件,确定答案在中间值的左边还是右边,然后在相应的区间内继续进行二分查找,直到找到答案为止。二分答案是一种以简洁,高效的方式去寻找我们所需要的值的方法。因为理解起来简单,使用起来方便,且套用模板可以解决很多问题或者减少我们的代码的时间而被人们爱戴。模板有二,一个是找最小的最大值(尽量向左找答案),一个是找最大的最小值(尽量向右找答案)其一:(尽量向左找答案)
2025-04-02 21:12:37
237
原创 第十届“新华三杯”k题“我来组成头部”解题思路
思路一之所以没成功的原因就是用a,b,c,d,e来表示彼此了,所以对重复的数很难判断,尽管我们最后用了二分,map也没能补救。还有就是要先从简单的下手。
2025-04-01 19:29:46
302
原创 当vector中存储结构体时的find函数的使用
c++的stl中为我们提供了很多好用的容器,但当我们把这些容器的数据类型定义为结构体时总会遇到各种麻烦各种报错,不是编译过不了就是函数报错。例如当我们想用vector的find函数时,如果数据类型为结构体你会发现用不了,当你一脸来搜博客的时候,就来到了我这篇。那就直接上方法吧:我们只需要重写operator比较函数即可,这样我们在用stl中其他函数的时候就可以畅通无阻了。具体实例代码,我就放下面了。
2025-03-26 20:29:51
361
原创 sort()函数的使用,以及自定义cmp函数
那么我们现在来自己定义cmp函数。return x>y;那么现在sort函数将会按从大到小的顺序来进行排列:i<5;i++){5 4 3 2 1那要怎么记住呢,一个方法是return后面是' > '就是从大到小,反之则反之。那就拿一个存了两个int的结构体来举例吧:int years;int grades;
2025-03-26 20:10:08
795
原创 对字符串的处理与结束条件的判断
因为本小白最近被字符串的题目给折磨的不轻,也是怪我基础不牢了。总是在处理字符串的时候倍感困难,所以这两天问了些学长学姐与搜索了几篇博客今天就来整理一下。
2025-03-19 18:14:50
434
1
原创 stl中vector的insert函数与迭代器的冲突
前两天做题偶然发现同时用vector的insert函数与迭代器会产生冲突,当时我百思不得其解,我检查了我的代码逻辑以及可能存在的错误得出来的结果是——没有错误;哈哈,当时是这么觉得,毕竟谁会质疑自己写出来的代码呢。
2025-03-18 19:06:15
471
原创 时间复杂度大O法
判断一段程序代码的好坏有两个标准,一个是空间复杂度,但是随着计算机硬件的发展使我们不必担心空间复杂度,因为我们不需要在意那几kb的内存;执行次数的,所以我们只需要去掉n只保留n^2即可;:时间复杂度 O(n log n),空间复杂度 O(log n)这是人尽皆知的冒泡排序,它的时间复杂度就是O(n^2)。:时间复杂度 O(n log n),空间复杂度 O(n):时间复杂度 O(n^2),空间复杂度 O(1):时间复杂度 O(n^2),空间复杂度 O(1):时间复杂度 O(n^2),空间复杂度 O(1)
2025-03-18 18:08:17
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人