- 博客(11)
- 收藏
- 关注
原创 习“动态规划”的心得
它是当前状态与下一状态的一个递推关系。例如:在**带限制的背包问题**中,`f[i][j]` 表示前 `i` 个物品在容量为 `j` 且满足某些限制时的最大价值。如果问题的目标是求**最大值**或**最小值**,`f[i][j]` 通常表示在状态 `(i, j)` 下的最大值或最小值。例如:在**数位DP**问题中,`f[i][j]` 表示在第 `i` 位,状态为 `j` 时的合法数字个数。如果问题涉及**选择**或**决策**,`i` 和 `j` 通常表示选择的**范围**或**限制条件**。
2025-02-08 12:32:56
299
原创 基础算法——排序
1.core idea:把<=x的数放左边,把.>=x的数放右边,分别最左边、右边排序(递归)——>如何放?左边>=的数与右边<=x的数交换位置即可——>在左边一直找>=x的数,直到找到;在右边一直找<=x的数,直到找到(do...while...)1.core idea:将原数组从小到大存储进空数组中——>从原数组中间划成左边、右边([i,mid]、[j,r]),左边元素右边元素比较谁小,谁放进空数组,谁移一位——>直到一边为空,另一边剩余,把剩余都放进空数组中。
2025-01-31 23:22:30
311
原创 7.数学知识——中国剩余定理、高斯消元
这是因为 exgcd 函数求解的是 c 和 mi的最大公约数,以及满足 cx+miy=gcd(c,mi) 的整数 x 和 y。由于 c 和 mi 互质,它们的最大公约数为 1,因此 cx+miy=1,这表明 x 是 c 关于 mi 的乘法逆元。)2.如果该主元为0,找该位置下面不为0的一行,去交换 3.把该主元变成1(同时对这一行操作)4.把该主元这一列都变成0(主元+-*/?为了确保 x 是一个有效的模 mi下的逆元,我们需要将其调整到 0 到 mi−1 的范围内。: 1.枚举对角线上的主元(
2025-01-21 19:26:27
827
原创 5.数学知识——欧拉函数
第二个结论的理由如下:1...p...2p...3p......p^k中,p、2p、3p等不能和p^k互质,所以剩余的数都与p^k互质的,因此p^k的欧拉函数为l(1~p)+l(p~2p)+l(2p~3p)+l(3p~p^k)=(p-1)*p^k-1,如图,φ(m)=m×∏(k=1到包含m的所有质因子)(pk^(-1))=pj×i×∏(k=1到不包含pj的所有质因子)(pk^(-1))=pj×φ(i)例,φ(75)=φ(3×25)=(3-1)×φ(25)
2025-01-19 23:33:35
886
原创 3.数学知识——质数
若n在10的6次方的话,欧拉筛和埃氏筛的时间效率差不多,若n在10的7次方的话,欧拉筛会比埃氏筛快了大概一倍.而且埃氏筛法会重复标记一个合数,而欧拉筛法避免将一个合数标记多次。
2025-01-18 20:51:43
499
原创 1.堆 堆排序
建堆=>插入操作STL的堆就是优先队列,代码如下:priority_queue<int,vector<int>,greater<int>>a;以上是以小根堆为例子,大根堆原理一样!
2024-10-26 11:05:34
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人