![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习记录
modesty_yu
须知少年凌云志 曾许人间第一流
展开
-
完全背包问题浅谈
跟01背包相似,我们把f[i][j]分为k类,分别是含0个第i个物品,含1个,含2个.......含k个。那么f[i][j]的更新方程就是f[i][j] = f[i-1][j-v[i]*k]+w[i]*k(针对于第k类而言,同样要有j>=k*v[i]的条件限制)原创 2024-06-27 11:10:31 · 238 阅读 · 0 评论 -
01背包问题浅谈,优化
我们将f[i][j]划分为两种情况,分别是包含第i个物品和不包含第i个物品这两种情况,由此递归,就可以解决问题,但是不是第二种情况不是时时刻刻都可以存在,当第i个物品的重量超过背包所能放置的重量时,第二种情况将不复存在,所以在取最大值的时候要进行判断。,他要满足两个条件,从前i个物品中选,且重量不超过j。因为在数组内有i-1所以下标要从1开始以防数组越界。原创 2024-06-24 23:19:32 · 228 阅读 · 0 评论 -
DFS-树的重心
在了解这道题目之前,我们首先需要知道图的深搜是如何进行的,我们用一个无联通单向图来记录这一类,因为单向图再添加的时候只需要往两个节点分别都添加连接即可,而树是图的一种特例。原创 2024-06-22 22:48:34 · 231 阅读 · 0 评论 -
第k个数小体悟
倘若需要找到第k个不重复的数,可以引入一个t来记作有多少个不一样的元素(从前往后遍历数组的时候)在对vector使用sort时,使用sort(x.begin(),x.end())就好。如上便可找出第k个不重复的小的数。原创 2024-03-28 11:14:39 · 153 阅读 · 0 评论 -
离散化体悟
p2数据是从acwing的数据里截取了一部分。原创 2024-04-03 12:24:42 · 205 阅读 · 1 评论 -
滑动窗口体悟
若在窗口中存在下标为i和j两元素,并使得a[i]>=a[j],且i原创 2024-04-06 22:33:43 · 109 阅读 · 1 评论 -
手搓堆排序体悟
A:因为在处理树的时候树里的元素个数是会变化的,如果非要用n来比较,那么在main函数中处理时要让n--Q1:在down函数中第二个if中一定要小于h[u],而不可以是h[x]A:是因为在第一个if中可能会改变u的值,具体便是如下这种情况。Q2:在down函数中比较的边界必须是Size。原创 2024-04-08 21:54:16 · 125 阅读 · 0 评论 -
DFS-排列数字
分别对这些数字进行排序,有多少个数字就有多少个空位,从前往后一个一个空位排列,并且为了保证顺序不重复,所以使用一个布尔类型数组来记录这个数字有没有被使用过(在本次排列中),在搜索过程(往下一位排列时),如果下一位排完了就要回溯,看上一位数字有没有可以进行更换的排列,以此类推记录下所得到的排列,当排满了的时候就可以输出。以及在回溯后要恢复原来状态。原创 2024-06-18 18:43:35 · 135 阅读 · 0 评论