![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
有风的一天
极限犹可突破,至臻亦不可止
展开
-
算法学习之动态规划(二)
例题一神奇的口袋有一个神奇的口袋,总的容积为40,用这个口袋可以变出一些物品,这些物品的体积分别为a[1],a[2],a[3]…a[n].John可以从这些物品中选择一些,如果选出的物体的总体积为40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。递推的做法#include <iostream>#define VOLUME_MAX 40using namespace std;int ways[VOLUME_MAX+1];原创 2020-07-20 18:42:24 · 106 阅读 · 0 评论 -
算法学习之动态规划(一)
动态规划的一般思路1、把原问题分解成子问题子问题和原问题的形式要相同或者类似,只不过规模变小了,子问题一旦被解决,原问题也就被解决。2、确定状态往往将和子问题相关的各个变量的一组取值,称为一个状态,一个状态对应一个或者多个子问题,所谓某个状态的值就是这个状态所对应的子问题的解。所有状态的集合,构成问题的“状态空间”。“状态空间”的大小,与用动态规划解决问题的时间复杂度直接相关。** 整个问题的时间复杂度是状态数目乘以计算每个状态所需时间 **。3、确定一些初始状态值4、确定状态转移方程能用原创 2020-07-18 22:28:25 · 126 阅读 · 0 评论 -
算法学习之 分治
题目一两数之和给定一个整数数组,和一个整数值m,要求在这个整数数组里找到两个数使得其和等于要求值m#include <iostream>using namespace std;int b[10];void merge_sort(int a[],int start,int end,int temp[]);void merge(int a[],int start,int mid,int end,int temp[]);void search_result(int a[],int d原创 2020-07-16 23:43:56 · 114 阅读 · 0 评论