- 博客(7)
- 收藏
- 关注
原创 P1048 [NOIP2005 普及组] 采药
dp[1][10] 是不选择第二个,只选择第一个 dp[1][10] 是等于 2020 的,于是得出 dp[2][10]=20。接着 i=2 放两个物品,求的就是 dp[2][j] 了,当 j
2024-04-02 21:12:50 242 1
原创 快速幂算法
这里的底数的幂是通过不断平方得到的,因此每次计算都只需要进行一次乘法操作,而不是像普通幂算法那样连续进行N次乘法操作。通过这种方式,快速幂算法将幂次计算的时间复杂度从O(N)降低到了O(log2N),大大提高了计算效率。特别地,当幂次N非常大时,快速幂算法的优势更加明显。**快速幂是一种高效的计算幂的算法,它的核心思想是将幂次转化为二进制形式,并利用二进制数的位运算性质来加速幂的计算过程。综上所述,快速幂是一种高效计算幂的算法,它通过利用二进制数的性质来加速幂的计算过程,并在模幂运算中有广泛应用。
2024-03-25 19:29:24 1318 1
原创 2024第一篇笔记
可以输出一个bitset数,输出的结果就是在该bitset数中存储的二进制数。甚至可以将一个负整数赋值给一个bitset数,这时在bitset数中存储的是这个负整数的补码。bitset数还可以执行按位运算,例如,s[i]&s[j],得到的结果也是一个bitset数。注意,对十进制负整数,bitset类也能转换成二进制,此时得到的是该负整数的补码。(6)set(k, val):将第k位的值改为val,即b[k] = val。1000 //3位二进制, 能表示的最小的负数, -8。
2024-02-25 22:20:54 652
原创 STL容器
STL中的集合(set)类似,也是一个存储数据的容器,集合中每个元素都是唯一的,不可重复。(9)find(x):查找元素x在集合中的位置,若不存在,则返回end。(8)erase(it):删除it指向的元素,it为指向元素的迭代器。(10)lower_bound(x):返回大于或等于x的最小元素位置。(11)upper_bound(x):返回大于x的最小元素位置。(6)insert(x):将元素x插入到set中。(7)erase(x):删除所有等于x的元素。(1)size():求元素个数。
2023-12-31 09:53:58 335 1
原创 笔记——集合
A∩B:既是2的倍数也是3的倍数。A:2的倍数构成的集合。B:3的倍数构成的集合。C:5的倍数构成的集合。D:7的倍数构成的集合。
2023-12-31 09:38:42 434 1
原创 STL 库
【注意】可以把一个32/64位有符号或无符号整数赋值给一个bitset数,对负整数,在bitset数中存储的是补码。但是,反过来,通过一个bitset数想得到对应的整数是有限制的,不能将一个bitset数赋值给一个整数,只能通过to_ulong()函数得到这个bitset数转换为unsigned long的结果,如果超出范围,则报错。可以输出一个bitset数,输出的结果就是在该bitset数中存储的二进制数。甚至可以将一个负整数赋值给一个bitset数,这时在bitset数中存储的是这个负整数的补码。
2023-12-31 09:28:40 357 1
原创 高精度(简略版)
在我们进行计算的过程中,经常会遇到几十位,甚至几百位的数字的计算问题,也有可能会遇到小数点后几十位,几百位的情况,而我们面对这样的情况下, 和 的数据范围显然是不够使用的了。//-------------------------初始化------------------------------//乘法进位: c[i + j - 1] = a[i] * b[j] + x + c[i + j - 1];
2023-12-31 09:02:53 400 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人