- 博客(7)
- 收藏
- 关注
原创 动态规划+深度优先搜索+记忆化搜索(干货满满)
动态规划的定义动态规划算法与分治法的思想类似,都是通过组合子问题的解来求原问题。我先来给大家介绍一下分治思想,分治思想就是把一个复杂的问题,分解为k个规模相同的子问题,如果还是无法解决,子问题又可以分为若干个相同规模的子问题求解,之后组合求原问题(难点)如二分法,归并排序,折半查找。至于动态规划:就是一个最优化问题,先将问题分解为子问题,并且对于这些分解的子问题自身就是最优的才能在这个基础上得出我们要解决的问题的最优方案(假设最优然后去求),要不然的话就能找到一个更优的解来替代这个解,得出新的最优自问题,
2021-02-15 21:28:40
3906
2
原创 SDUT递推题目
养兔子#include <iostream>using namespace std;int M=1e3+10;int main(){ int n; long long int f[M]; cin>>n; f[1]=1; f[2]=2; for(int i=3;i<=n;i++) { f[i]=f[i-1]+f[i-2]; } cout<<f[n]; return 0; } 母牛的故事#include <stdio.
2021-02-14 16:27:54
333
原创 贪心算法入门
贪心算法的定义贪心算法,又称贪婪算法,就是在解决问题的每一步,都在一定的标准下做一个最优决策,做出最优决策所依据的标准称为贪心准则。贪心算法每一步必须满足以下条件: 1、可行的:即它必须满足问题的约束。2、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。3、不可更改:即选择一旦做出,在算法的后面步骤就不可改变了。注意:贪心算法不考虑整体的最优,只是做出了当前来说最好的选择(无后效性)。先来个小题来理解一下吧!删数问题Description键盘输入一个高精度的正整数n.
2021-02-10 18:36:32
1006
原创 递归算法和过程的详解
看了很多博主的博文,加上看了几个视频,做了一些题目,感觉对递归有了一些认识,希望大家观看以后会对自己有所帮助。递归的算法详解递归的定义如果一个对象部分地由它自身组成或按它自己定义,则称它是递归的,所以说递归就是函数/过程/子过程在运行过程中直接或间接调用自身而产生的重入现象。递归算法包含的两个部分1 由其自身定义的与原始问题类似的更小规模的子问题(只有数据规模不同),它使递归过程持续进行,称为一般条件。2 所描述问题的最简单的情况,它是一个能控制递归过程结束的条件,称为基本条件。
2021-02-07 15:39:23
3025
原创 递推的简单入门
递推的简单入门第一篇博文的观看量日益增加,我感到很开心。能把我所学到的东西分享给大家,并得到大家的认可,是我一直写下去的动力,愿你我能共同进步,加油!!!递推法的基本思想递推就是利用问题本身所具有的一种递推关系来求解问题的一种方法,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要计算的中间结果和最终结果。对于初始条件:1.要么在问题的本身已经给定2.要么通过对问题的分析化简后来确定。递推的本质把一个复杂的计算过程转化为一个简单的过程的多次计算。可递推求解的问题特点1
2021-02-06 20:27:56
1253
原创 SDUT程序二链表题目
数据结构实验之链表一:顺序建立链表#include <stdio.h>#include <string.h>#include <stdlib.h> struct node { int mode; struct node* pnext; }; int main(){ int n,i; struct node* head; struct node* tail; struct node* p; scanf("%d.
2021-02-04 19:57:04
131
原创 链表的简单入门
链表的简单入门寒假刚刚把链表的题目刷完,感觉对链表有了一点认识,分享给大家,希望大家看了我的博文后都能有所进步,有所收获,另外有误的地方欢迎大家来指正。链表是一种常见的数据结构。当使用数组存放数据时,要先指定数组中包含元素的个数,即数组的长度。当数据超过了数组的大小时,便不能够将内容完全保存。如果数据远小于数组的长度,用数组申请空间的方式就非常浪费空间。所以就希望有一种储存方式,其元素的个数不受限定当添加新的元素时,储存的个数也会随之改变,这种存储方式就是链表。下图为结构体的示意图链表的
2021-02-04 18:26:47
1376
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人