自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表的基本方法函数(数据结构教程C语言版)

这里贴的和书上代码基本一模一样,同时加入了自己的注释,用于自己保留期末复习。

2024-11-04 15:12:10 140

原创 C/C++ malloc和new(基本用法和区别,附有实例帮助理解)

当我们数组中存放数据超出限制之后,程序通常会以报错终结,但我们不希望程序这样以错误结束,而希望其能够解决这样的问题。

2024-09-08 19:51:55 790

原创 Educational Codeforces Round 168 (Rated for Div. 2)

思路:第一次写树的题,思路很明确,但是代码实现真的不知道怎么办,也是跟着题解抄着做了一遍,思路就是对于每个节点,我们都要找到他的儿子中值最小的那个,然后让他和节点比大小,如过儿子小,那我么最小值就是儿子,如果节点大,那最小值就是(节点值+儿子值)/2,然后我们这样去搜索,最后答案是根节点值加上最小值。思路:这道题乍看很难读懂,需要仔细思考一下题意,读懂之后发现就是给你一整个连通区域,然你堵上一块,使连通区域变为3个,其实只有。x . x 这样子的单位才可以分为三个区域,所以我们只要枚举就好了。

2024-08-30 17:08:36 331

原创 Codeforces Round 968 (Div. 2)

我么考虑每个序列先求一次该序列mex,然后题目告诉我们这个mex还可以作为x再用一次,此时我们再求一次mex,然后对每个序列维护mex的最大值,最后得到所有序列的最大mex,记作xx。:首先做题的时候这题基本上只能靠猜,严格证明应该不现实,读一下题我们知道只要让不同的字母尽可能多凑到一起就可以了,所以我们统计每个字符出现次数,然后按照字母表顺序挨个输出就可以。反思:喔第一反应是在原有字符串基础上去换,这样其实非常麻烦,所以对于这类输出一个字符串的,一般就是把所有数据存起来最后统一输出。max(i,xx)。

2024-08-27 21:27:35 240 1

原创 CF B、C补题集合(2)

思路:奇偶性相同时候不说了,不同的时候我们只能把所有偶数变为奇数,那我们先找到最大奇数如果他是最大的数字那答案就是偶数个数。如过最大数字是偶数,就将所有比最大奇数小的偶数加到它身上,同时更新最大奇数的值,如果最终它不能超过最大偶数,答案是偶数个数+1,否则还是偶数个数。思路:这种绝对值的加减,最终结果都是会有缩小整数范围的作用,本质上我们每次取最大数的中间数,会将最大数缩小到原来的一半。一种是开灯区间为红色,一种是蓝色,对于红色,我们需要更新右区间,对于蓝色我们需要更新做左端点,最后判读区间是否合理即可。

2024-08-18 14:45:26 276

原创 CF B、C题补题集合

所以状态转移方程为:dp[ i ] = dp[ j] +j -i-1;如何寻找那个大于x的最小的j呢,我们只需要upper_bound去寻找就好了,所以关键就是找到这个节点,让毒性值清0。记这个点为j,那从j+1开始就又变成了相同的问题。很明显当我们找到

2024-08-08 12:58:34 252

原创 EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2)补题

1、的简单题(A--D)的补题,虽然我每场都只会前两道 :(((

2024-08-04 14:10:01 512

原创 Python中Numpy库基本语法整理

三维: (x,y,z) 代表长宽高分别为x,y,z的三维数组。往整数数组插入浮点数,小数部分会被截取,同理向浮点型数组插入整数,整数会变为浮点数。不同维度数组,区别在于中括号数目的不同,一、二、三维数组中括号数量为1,2,3。与单个系数进行运算,就是每个元素分别对其进行运算,得到的矩阵规模不变。当矩阵乘积中混有向量时,根据需求,其可充当行矩阵,也可充当列矩阵,数组的形状参数:一维:x 代表有x个元素的一维数组。运算是每个相同位置的元素进行一次运算,和矩阵的乘法不同。

2024-07-01 21:12:29 902 1

原创 矩阵快速幂实现斐波那契数列

正常求斐波那契数列的暴力算法时间复杂度为O(n),当数据量过大时时间过慢,通过矩阵快速幂的方法可以将时间复杂度降低至O(logN).也就是说我们可以把斐波那契数列求解化作一个类似等比数列的感觉,不过里面每一项都是矩阵,然后通过快速幂计算每一项。可以当作矩阵快速幂的模板,不过结构体里面矩阵开的大小要符合具体题目要求。一样的递推公式,我们只需要把矩阵换一下即可(注意从0项开始的)矩阵乘法的实现这里就不说了,直接说最关键的步骤。这里偷了张网上的图=-=。

2024-04-07 22:24:43 347

原创 求异或和的和

题目:这是一个简单的异或和的和的问题。给你N个数字,求ΣAi XOR Aj(i<j)对10^9+7的余数。其中XOR表示亦或。

2024-04-04 18:38:42 254 1

原创 CF round934(div.2)补题

每个数字出现两次,我们不妨把2n劈开为两段看,统计每段出现一次和出现两次的数字,出现两次的我们直接加入到ans数组中,因为这两个数字异或对结果不构成任何影响,对于出现一次的数字,对应另外一边一定出现一次,把一个的也加入到ans数组中,但注意加入一个的数字结束后要判断是否有奇数个数字,如果是要删除一个保证始终为偶数即可。,爱丽丝不是傻子,它可以看着Bob删除哪个大于两个的数字,就把省的数字拿走,所以说Bob是无论如何都不可能阻止爱丽丝对出现次数大于2的数字拿分的。

2024-04-01 17:29:01 484

原创 求2的n次方的三种不同时间复杂度的做法

这是一种常见的求幂算法,简单来说,就是每一次运算,我们只进行将指数减半,底数平方的操作。知道当指数为奇数时,我们把奇数里分出一个底数插入到ans里,这样就会让指数再次变成偶数,之后继续进行这样的操作,知道指数变为0.所以我们只需要对一个数每次左移一位并且补上1,如2的十次方,我们直接写成1<<10,即11111111110(2),输入到计算机里,即可直接返回2的n次方,非常厉害。很简单,就是循环n次,每次乘上底数2即可,就不放代码了。既然都说是2的n次方而不是别的数字,那就想一下和二进制的关系把。

2024-03-20 13:04:23 1089 2

原创 康托展开,求全排列的排名

思路:依据康托展开,思路就是从第一个数组开始遍历,找到这个数字在没有出现过的数字里的排名,之后ans+=(排名数-1)*(n-i)!,其中i为循环次数,从1开始。最后对得到的ans+1.题目:输入一个n和两个n的全排列,求两个全排列的排名差的绝对值,排名为字典序排民。我们只需要用一个vis数组记录之前出现过的数字即可正确得到排名。来自校内赛的一道题的题解。

2024-03-14 21:43:46 600

空空如也

空空如也

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

TA关注的人

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