自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习总结:搜索

堪称万能的解法,干就完了。搜索概述:搜索算法:有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。不同于单纯的枚举算法,有一定的方向性和目标性,并从一个状态转移到其他状态。两种搜索:深度优先搜索(DFS)(较常用)基本思想:从初始状态开始,沿着搜索树检查每一层的任意一个结点,若出现目标状态,回溯上一层;若未出现,再检查下一层任一个结点,重复过程一直到最后,如果最后仍未出现目标状态,也回溯到上一层结果。回溯到上一层之后再选其他的结点检查。重点:树状图,回溯。实现:总是与

2021-05-23 14:06:19 96

原创 学习总结:分组背包和二分查找

分组背包问题:题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法:每组物品有若干种策略::是选择本组的某一件,还是一件都不选。即:先对每一组进行01背包的判断,再对每一组中的物品进行判断状态方程:f[k][v]=max{f[k-1][v],f[k-1][v-c[i]]+w[i]|物品i属于组k}//f[k][v]表示前k组物品

2021-05-16 11:02:57 105

原创 背包dp再学习

完全背包题意:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。分析:同01背包类似,同样是求背包价值最大的问题,区别在于“每种物品都有无限件可用”。可以转化为01背包:考虑到第i种物品最多选V/c[i]件,于是可以把第i种物品转化为V/c[i]件费用及价值均不变的物品,然后求解这个01背包问题代码:for (i=0;i<n;i++)for (j=w[i];j&

2021-05-08 14:49:41 70

原创 初学背包dp

最基础的01背包问题:你的背包体积已知,现有n个物品,每个物品有自己的价值和体积,求如何装使得背包内的物品价值最大。特点:每种物品仅有一件,可以选择放或不放 ;与之前贪心算法的区别:区别在于无法将物品分割,即无法用性价比的方法算;(1)若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题:(2)如果不放第i件物品,则转化为“前i-1件物品放入容量为v的背包中”,价值为f[i-1][v];(3)如果放第i件物品,则转化为“前i-1件物品放入剩下的容量为v-c[i

2021-05-04 12:55:14 86

原创 学习总结:区间dp

这几天在做有关区间dp的题,在学习中,现在先总结一下,之后就只能靠刷题了。概念这里先复述一下区间dp的概念:同样是求最优解的问题,区间dp就是在区间上进行动态规划,我们可以把大区间转化成小区间来处理,然后合并小区间的 最优解进而得出整个大区间上最优解。主要的方法有两种,记忆化搜索和递推。一般区间DP实现代码区间dp的格式一般相差不大:memset(dp, 0x3f, sizeof(dp));for (int i = 1; i <= n; i++) //区间长度为1的初始化dp[i][i

2021-04-24 12:34:11 219

原创 线性dp

前言之前试着总结了一下线性dp的几个常见的模板,但事实上,除了少量问题(如:LIS、LCS、LCIS等)有固定的模板外,大部分都要根据实际问题来推导得出答案,这次看看一些不一样的题。这里说一下dp题的两种基本做法:第一种是暴力求解,是对每个子问题求其的每种情况,最终去最优的,最后再对每个子问题取最优。第二种则是对是对每个子问题直接通过if语句或者max函数根据问题需求求最优,最后再对子问题求最优。这两种方法,第一种用的比较多,因为比较好想,把所有的情况都存起来就行了,就是显得有些啰嗦;但第二种也很常见

2021-04-17 19:45:37 77

原创 动态规划/dp学习

先说一下我最近学习的感受:现在开始了动态规划的学习,较之前的贪心算法,难度提高了。主要是问题难分析、思路难想…贪心果然是最简单的一种算法。dp问题暂时没找到什么既具体详实又普适性高的规律,只有一点基本概念的理解,对此老师给出的建议有点硬核,就是硬做。熟能生巧,培养自己做题的感觉,革命尚未成功,同志仍需努力。我对于动态规划的一点理解:动态规划的基本思路就是穷举,在最优子结构和无后效性的前提下,分阶段列举出所有情况,最终找到符合自己所要求的那组数据。因为前一阶段的决策会影响后一阶段的决策,难点就在于状态

2021-04-10 17:03:14 52

原创 学习总结:贪心算法

思路:(1)先读懂题,英语阅读理解max,搞清输入输出的具体要求(2)模拟,用最基本的的思路思考整个问题(3)优化算法:用算法的思想简化优化(4)多角度灵活思考:正难反易(5)参考经典例题,回归经典例题(6)一些数学归纳方法也很重要模板:头文件例题:...

2021-03-28 01:41:14 271

原创 学习总结:盘点错误

此次总结如何解决做题中出现的种种错误这里写目录标题一、wrong answer:(运行结果有问题);二、Presentation Error:(细节问题);三、time limit (超时)四、runtime error五、Compilation error#六、Runtime Error(ACCESS_VIOLATION)一、wrong answer:(运行结果有问题);1.改算法;2.改数据类型;3.输入顺序不对;4.阅读理解很重要,尤其是英语;例如:Ruwrite a program t

2021-03-19 21:26:19 300 1

原创 学习总结:STL排序

前言:我们在编写程序的过程中,不可避免的要对数据进行排序,通过以下方法,我们能节省大量时间,并提高运行效率。一、升:1.sort:头文件:#include;定义:sort(begin,end);如:int a[5];sort(a,a+5);//默认升序排列;2.set:头文件:#include;定义:set<data_type>set_name;如:seta;//默认升序排列;3.multiset:用法与set大体相同,区别在于set不包含相同元素,而multiset可以

2021-03-13 07:28:53 205

空空如也

空空如也

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

TA关注的人

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