- 博客(10)
- 收藏
- 关注
原创 二分查找及例题讲解
二分查找&&三分法二分查找的优点显而易见,这个太节省时间了;因为很多其他类型的题目,题目的复杂会比较高,不管是时间复杂度也好,还是空间复杂度也好,有了二分查找的帮助,至少不会让已经很复杂的程序更雪上加霜,为我们ac题目提供了一点帮助。在学习二分查找这段时间,很明显的感觉到,这个确实是一个比较直接比较简单的一部分,不像前面的背包,背包问题真的是花样太多了。下面,简单总结一下二分查找。二分查找在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,
2021-05-23 09:40:21
627
原创 背包问题总结
背包问题(综合总结)背包问题,从我们的学习顺序,以及复杂程度上,主要有四个方向:1、0-1背包2、完全背包3、多重背包4、分组背包上周总结了个动态规划的小结,在这里再提一下。动态规划是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题,最终达到解决原问题的效果。动态规划则通过类似于填表的方式,把所有子问题答案纪录下来,在新问题里需要用到的子问题可以直接提取出子问题的计数结果,避免了重复计算,从而节约了时间。但是,一般动态规划的问题所用的时间都是以幂次方的形式成倍增加的,很
2021-05-17 06:27:27
817
1
原创 2021-05-09
动态规划,背包0-1背包 主要思路动态规划是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题,最终达到解决原问题的效果。动态规划则通过类似于填表的方式,把所有子问题答案纪录下来,在新问题里需要用到的子问题可以直接提取出子问题的计数结果,避免了重复计算,从而节约了时间。但是,一般动态规划的问题所用的时间都是以幂次方的形式成倍增加的,很容易超时,这就需要我们将代码做到最优,尽量降低时间复杂度,才能保证题目的完成。在背包问题中,我们最先接触的是0-1背包问题。它的原理依然是普通的动态
2021-05-09 08:49:53
109
原创 2021-04-26
第八周动态规划区间DP乘法游戏题解:桌子上总会有最左边和最右边的牌,这两张牌在进行过程中,不能被拿走,直到最后剩下这两张牌。得分的规则是用你拿起的牌乘左侧牌的数再乘右侧牌的数。求得分最小。每次都有一张牌被拿走,与得分有关系的数分别是被拿走的牌,以及它左右两侧的牌,还有最左最右的牌。我们要找出最后被拿走的牌,设这张牌为k,那么就分成了两个区间,最左侧到k和k到最右侧。在小区间中继续分,枚举出所有情况,找出最优解。d[i][j]表示第i个数到第j个数合并的最小值状态转移方程:d[i][j]=min(
2021-04-26 23:10:49
101
原创 2021-04-25
ACM第八周,动态规划区间DP(未完,待续)区间DP和线性DP还是很相似的,线性dp是以一个点为对象,建立状态方程,在整个区间中找到最优解; 而区间dp则是以一个区间为对象,找出边界条件从小区间开始不断求解出最终总的区间问题。区间DP主要是把一个大区间拆分成几个小区间,先求小区间的最优值,然后合并起来求大区间的最优值。区间DP实现代码的一般规则:}memset(dp, 0x3f, sizeof(dp));for (int i = 1; i <= n; i++) dp[i][i
2021-04-25 13:46:01
71
原创 2021-04-18
ACM之五又是动态规划的一周,这周继续做了许多动态规划的题目,见识了更多题目,但很多都是和我们讲过的例题类似,题目问法变了,但本质的东西还是那些,多的只是稍微的变形(戏法一样的东西)。但是,还是有很多问题值得我们再深入思考,毕竟这只是动态规划的入门,要想真正入门,真正学到精髓,对于我们新手来说还是有一定难度的。子序列问题对于现在的我们而言,求一维的最大子序列和已经不足为道了。这个的状态方程应该是最简单的线性dp问题了。先来看一下求子序列和最大最小的相关问题,这个有一维和二维的两种,当然了,我只是说我
2021-04-18 07:24:33
145
原创 2021-04-10
ACM之四最近的动态规划一直没怎么做题,因为还在看课件上的例题,动态规划的例题还真挺多的。实话说,动态规划的题确实比贪心的题感觉稍微难一点,当然了,也可能是因为刚接触动态规划,跟动态规划还不够熟,就感觉放不开手脚。先说一下学习动态规划后,主要对于动态规划的认识和重点知识以及对于我来说的一些难点易错点。首先,对于动态规划的一些比较主要的词汇:阶段、状态、决策、状态转移方程。动态规划是分阶段求最优值的方法,和贪心算法不同。贪心是一个贪心规律一直运行下去,而动态规划是分阶段,将一个问题分为若干个小问题,
2021-04-10 22:54:47
80
原创 2021-03-27
ACM第三周,渐入佳境下面是最近cf的A题,很可惜,wrong answer了。第一次参加比赛,或多或少有点怯场。两个小时,真的是很快呢。其实挺遗憾的,一共有五个测试样例,前四个样例比较顺利,而而最后一个,总是乱七八糟的一串数字。我知道,最后一个测试样例数量级很大 10的12次方。对于我的错误,不出意外,应该是数据类型出了差错。然后我开始调试。最终以失败告终。下面是我当时写的代码。#include<iostream>using namespace std;int main(){
2021-03-27 18:17:14
120
原创 2021-03-20
贪心算法实话说,对于贪心算法,我真的还是糊里糊涂的(_???? 。还没有好好沉淀,还没有内化,还没有升华。其实挺难过的,我对于写程序,真的怕死了,由此,这一周对于我,毫不客气地说是没有长进。我问,是不是我不能真正理解贪心算法呢?事实上,我知道,并不仅是如此,我清楚的知道主要原因是我的代码能力有限,对于基础知识不够熟练,也没有一些好用的技巧知识。虽然说是技巧,但事实上还不是一些必得掌握的知识呀。今天真的是有点沮丧了呢。但是不错的是,我至少比之前尝试了更多的一些题目,英文的,真的把我搞得眼花缭乱的,头昏脑胀
2021-03-20 22:57:06
81
原创 2021-03-13
ACM之启程最近一周忽然发现了一个事情,就是我好像对于我们的程序设计,忽然有了那么一种亲切的感觉。当然了,举个最通俗,最简单的例子来说,大都知道“=”,就是“等于”嘛,在我们程序设计里,就是“赋值”,就最近发现,这个符号好像原来就是“赋值”的样子。我感觉程序设计在我的土地上,发芽了。新的课程,acm程序设计,修读的第一周。春风化雨的一周,收获颇多,可是总感觉对于新学的知识,特别是学习了但没用过的那部分总感觉是虚浮着的,可能没用过,总会感觉心里没底吧。也因为是新手,会出现一些因经验欠缺而出现的错误,和一
2021-03-13 16:27:46
148
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人