- 博客(12)
- 收藏
- 关注
原创 部分dp问题
如果暴力拆分,数量为2000的物品要被拆分成2000份,实际上这个过程时间复杂度很大,所以在此处引入二进制拆分方式。多重背包问题2与多重背包问题1的区别在于时间复杂度,多重背包问题2是对多重背包问题1的二进制优化过程。分组背包问题特点:共有n组物品,只能从每组物品里选择一个,求总体积不超过V时所能得到的最大价值。但是有8的存在会使大于10的数也被表示出,所以我们先讨论1,2,4能拼凑出的情况。多重背包问题特点是有i个物品,每种物品最多使用s件,每种物品的价值为w。假设限制条件共有M, V, X, Y…
2025-03-24 19:31:21
839
原创 SDUFE-ACM招新
作为一个服务于广大计算机及相关专业学生的学生社团,我们致力于:1. 为计算机科学及相关专业的同学们搭建学术交流和职业发展的平台。2. 组织各类技术讲座、编程竞赛、学术论坛等丰富多彩的活动,促进同学们对计算机科学的学习和研究兴趣。3. 加强与ACM总部及其他分会的联系,汲取国内外计算机前沿知识和经验。4. 培养同学们的团队合作精神、创新意识和责任心,为他们未来的职业发展打下坚实基础。CCPC山东站!
2024-07-21 15:45:25
253
原创 数据结构-单调栈
我们前面讲解了模拟栈的用法,根据模拟栈的用法,那我们想一下,如果给出了一个整数数列,那我们如何找到每个数左边最小的一个数呢,当然也会有找不到的情况,找不到我们就输出-1。
2023-11-23 19:00:50
60
2
原创 vector用法
for循环存入(即下标法):当未给定动态数组长度参数时不能使用下标法进行操作,溢出访问也是错误操作自动方式只能使用成员函数来做**注:**当提前给定长度参数时,进行尾插时会在在给定的长度参数后申请内存并插入,并不是在最后一个元素后进行插入。所以一般使用vector,采用的方式是不加长度,只用push_back()的方式插入尾部插入元素,自动扩增1.下标方式2.数组方式(借用数组下标)把array数组里的数直接赋给info(一段内存给另一段内存初始化)可以自动扩增。
2023-11-21 18:52:33
74
3
原创 算法-一维差分
定义一个arr数组,进行m次操作[L,R]区间内➕v在上述的运算方法中,我们可以看到我们运算过程中存了很多中间值,但是我们的目标只是求得arr数组,所以有没有什么好的方法能让我们直接求得arr数组而且并不存入如此多的中间值呢?
2023-11-21 11:18:27
68
原创 算法入门——快速幂
设想一下,如果求a^b,可以通过循环,但是当b很大时,会面临超时的问题,所以我们引入快速幂给定一个a^b,通过将b以二进制形式拆分,按位取出。任何一个十进制的b都可以变成二进制数:b=9;转换成二进制为1001,在通过位运算(&1),判断二进制每一位是0是1通过二进制运算(具有指数型递增的特点,所以能实现快速求一个数的n次幂)使其求出a^b;
2023-11-20 22:45:53
72
1
原创 高精度减法
借位后,为了防止被借的数用不到且小于零。(1)位数不同,比较字符串长度。然后转换成大数减小数加"-";(2)长度相同,直接比较。如果有错误希望大佬们指正。
2023-11-12 18:14:18
62
1
原创 高精度加法
long long的范围为***-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807***int的范围为***-2,147,483,648 到 2,147,483,647***如果lint和longlong都爆了,就需要进行高精度运算。***:*** 便于进位。c++小白,望大佬指正。
2023-11-12 14:53:09
105
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人