![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++笔记
勿言之魚
这个作者很懒,什么都没留下…
展开
-
5.17-5.23总结
二分查找算法 二分查找适用于在一个排序数组中找到给定的数,遍历的复杂度为O(n), 二分的复杂度为O(logn),二分的场景有以下三种: 寻找一个数 寻找左侧边界 寻找右侧边界 三分法 类似二分的定义Left和Right mid=(Left+Right)/2 midmid=(mid+Right)/2 如果mid靠近极值点,则Right=midmid 否则(即midmid靠近极值点),则Left=mid; 三分是和二分非常类似的一个算法,与二分不同的是 二分是单调的,而三分是一个先增后减或者先减后增 三分可以原创 2021-05-23 23:18:08 · 105 阅读 · 0 评论 -
4月5号-4月11号
动态规划 动态规划是利用之前所计算的最优值来推出接下来问题的最优值。 有些像递归。 解题要先定义储存每个问题最优值的数组,然后找到最优值的状态转移方程,还要找到最初的初始值。 拿一个简单的题举例: 小明写了一个简单的吃金币游戏,规则如下: 在一个长方形地图上,玩家每次能从一个方格走到相邻一个方格。 玩家控制的角色可以向下或者向右走,但不能向上或向左走。每个方格上都有一定的金币。 现在,小明想请你帮他想一个策略,尽可能多的获得金币(从左上角走到右下角可能获得的最大金币数)。 该问题是求到右下角是所获得金币的最原创 2021-04-10 23:16:27 · 56 阅读 · 0 评论 -
3月29号-4月4号总结
动态规划 动态规划是分阶段求最优值的算法。 1.将复杂问题按阶段分成子问题 2.枚举子问题各种情况,从中找出最优值 3.利用子问题的最优值求得源问题的最优解 解动态规划的题: 要把握问题的关键,学会寻找状态转移方程。这是最关键的一步,找到了便基本解决了问题。 划分子问题,是按时间,空间等方式进行划分。 感悟 在课上学习动态规划一定要在课前预习,否则基本跟不上。ACM课是学习算法的课,要比程序设计要难的多,对思维要求十分高。所以上ACM课最重要的是学习思维方式,提高自己的思维能力。并且看题要看本质,要跟别的同原创 2021-04-10 22:30:42 · 39 阅读 · 0 评论 -
3月21日-3月28日总结
贪心算法 贪心算法是不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解 首先确定贪心策略,选择一个看上去最好的方案。选择目标不同也不同 局部最优解:把问题分成一个个小问题。 动态规划 动态规划是分阶段求最优值的算法。 1.将复杂问题按阶段分成子问题 2.枚举子问题各种情况,从中找出最优值 3.利用子问题的最优值求得源问题的最优解 例题 吃金币游戏 在一个长方形地图上,玩家每次能从一个方格走到相邻一个方格。 玩家控制的角色可以向下或向右走,但不能向上或者向左走。每个方格上都有一定的金币。 求从左上角原创 2021-03-28 21:19:02 · 46 阅读 · 0 评论 -
3月15-3月20号内容总结
总结: 函数rand()与strand(),time(): rand():以某个随机数种子产生随机数。 注:这种随机数不是真正的随机数,相同随机数种子产生的随机数是相同的 例: int a,b; a=rand(); cout<<a<<endl; b=rand(); cout<<b<<endl; 第一次执行上面的代码输出的数据: 41 18467 第二次执行输出的数据同样是: 41 18467 srand():用于设置rand原创 2021-03-21 11:51:27 · 90 阅读 · 0 评论 -
3月7号-3月13号内容总结:
3月7号-3月13号内容总结: C++ 的字符串类型string string定义一个保存字符串的变量(对象); 定义格式: string 标识符; string类支持字符串对象的各种操作,相比字符数组更加简便易懂直观好操作。 初始化可以像字符数组那样赋值: string x=“abc”; 也可以像一般变量一样进行赋值: string x; x=“abc”;(不需要像数组那样借助指针来像这样赋值) 可用cin>>x;赋值,或者用getline()赋值。 如: string x; getline(原创 2021-03-13 16:25:24 · 126 阅读 · 0 评论