- 博客(12)
- 收藏
- 关注
原创 指针的分类
很多人可能疑惑利用下标对数组进行访问不是具有更好的可读性吗?为什么还要用指针进行访问呢,让代码变得复杂,但是在某些情况下利用指针对数组进行操作可以大大提高代码的运行效率。行指针其中的括号是用来改变指针的优先级的。这个语句声明了一个指向包含4个整数的数组的指针p。如果没有括号,那么这个语句将会被解释为 int *p[4] = arr;这样的声明,表示p是一个包含4个指向整数的指针的数组,而不是一个指向包含4个整数的数组的指针。所以括号的作用是改变指针的优先级,确保声明的是一个指向包含4个整数的数组的指针。
2023-11-16 14:35:39
133
1
原创 前缀和与差分的笔记
前缀和一般是对某几个区间的和进行操作的,这样可以降低直接用暴力相加的复杂度,而差分一般是对某个区间进行加减操作,也是降低复杂度的本质是一种优化。这个题很明显对某一个区间进行加减操作,是一个差分的模版题,只需要注意数据范围,是用int,还是用long long。一个简单的前缀和的题只要找到前几项的和=k就输出1如果找不到就输出0;双指针其实也是通过限定区间,不断地移动这个区间,来进行判断。第二个题其实用双指针也可以做同样是进行优化的思路。
2023-10-30 11:20:22
152
1
原创 二分查找与二分答案做题笔记
所以在算法比赛中,这种二分查找的题大部分代码都是套用二分查找和二分答案的模版并没有太大的难度,只是一开始进行判断的bool函数需要格外注意,需要运用一些思维来构造。
2023-10-28 11:03:14
130
1
原创 关于质数筛的思考
然后,对之后的质数判断有个问题,怎么对它的因数进行判断,这其实是一个数学问题,控制枚举的量,如果全部枚举,会非常慢,如果只枚举到它的开根的情况就可以很好的判断,减少了枚举量。质数,是一个大于1的自然数,且只有1和它本身两个因数,这样的数被称为质数,其它的都称作素数,所以我们可以根据质数的特性来写一个质数筛。首先,要求质数是一个大于1的自然数,所以可以先对输入的数是否为0或1进行判断。在程序设计比赛中,有很多的题目会要求判断质数,所以学会质数筛是很有必要的。如果是0或1的话直接返回0;
2023-10-10 08:44:01
81
1
原创 一道递推题的思考
这种题是属于思维题,其实语法都学过,只是加上了一些数学知识,对题目中给出的公式有一个很好的了解,就能轻松AC这道题,其实语法题大部分都是思维转化,和找到规律,以及一些函数的拓展知识,难度不高,但是需要认真读题,认真思考。Fibonacci数列的递推公式为:F_{n}=F_{n-1}+F_{n-2}Fn=Fn−1+Fn−2,其中F_1=F_2=1F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输出一行,包含一个整数,表示Fn除以10007的余数。
2023-10-08 11:10:03
58
1
原创 洛谷p1055题
2.注意如果使用字符数组读入这个ISBN码,要注意如果直接进行计算的话,实际上使用了这些数字的ASCII码进行计算,从而导致计算的结果出现错误,可以在计算的过程中减去‘0’从而是使用了正常的数值。以此类推,用所得的结果 mod 11mod11,所得的余数即为识别码,如果余数为 1010,则识别码为大写字母 �X。最后,笔者在前几天的集训队的热身赛中AC了六道题,暂居第十,因为有了两次罚时,不过还是很开心的因为在一个月之前,我连c++是什么都不清楚,如今已经能够独立完成一些题目了,还是很开心的;
2023-10-01 23:20:40
137
原创 一道逻辑语法题
这是一道逻辑语法题,实际上并没有什么难度,但是如果没想到的话也很难做出来,实际上,每次取走c克的水,两个杯子共转移了2c克的水,两杯水的差值就是需要转移的水,那么这些水除以2c就可以算出次数。怕什么真理无穷,进一寸有一寸的欢喜,明天早八上高数,今天就先写到这吧。1.一定要开double,不然用int计算回使结果变小。2.数组一定要开大一点,避免数组越界。
2023-09-26 22:07:39
101
1
原创 洛谷入门赛2023九月第一题
又是和c++拼命的一天,但我却也爱上了这种生活,不管别人怎样,不管环境怎样,我只想做好眼下的事,即便我还指一个刚入门的小白,但依然有一颗想要登上顶峰的心!但是再提交之后一直有测试点没用通过?百思不得其解,后来问了以为大佬。这道题一开始看是一道水题,这不随便AC(手动狗头)输入只有一行三个整数,依次表示 a,b,c。所以把int换成long long 就行了。给出三个整数 a,b,c,保证 b≠0。所规定的数据范围超出了int可以承载的。原来是没有注意数据范围。于是有了下面这段代码。
2023-09-15 22:07:41
104
原创 字符串的题目整理
这到题上来可以说是没太有思路,想用另一个数组来存储重复出现的字母,奈何写不出来,后来想到可以用循环直接赋值,然后遍历输入的字符串,再创建一个数组,用这个数组记录26个字母的编号,在遍历这个字符串的过程中,每遇到一个相同的字母,就令数组中的对应元素加一,然后再用for循环来找出最大值和最小值,最后在判断是否为质数就可以了。比如c接受了一个字母b,b的ASCII码为98,则循环中的’c-a'就是1,则数组zimu[1]就是字母‘b'出现的次数。再用一个简单的找最大值最小值的方法找出出现的字母的最大值和最小值。
2023-09-15 21:53:04
143
原创 小白刷题笔记
这道题考查指针,实话说,我的指针学的并不清晰,这道题,反反复复并查阅了一些资料,涉及到了指针运算的知识,学到了,用指针操纵数组的一种方法,还是很有效果的。编写函数,求包含n个元素的整数数组中元素的平均值。要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值。
2023-09-12 11:03:00
51
原创 小白刷题笔记2023九月十二日
但是在写的过程中发现,在这道题的输出过程中,没有找到这个整数输出-1的情况一直没有解决。如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。1.可能在没有遍历完这个数组的时候就输出了-1,导致运行的结果出现问题。给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。2.可能在找到这个整数的对应的序号之后依然输出-1;第三行包含一个整数a,为待查找的数。第一行包含一个整数n。
2023-09-12 08:11:48
35
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人