自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第六章 回溯算法

以深度优先的方式系统地搜索问题的解的方法称为回溯法。 可以系统地搜索一个问题的所有解或任意解。 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。 回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。 if (pd(a[20],a[1])) print();} else search(t+1); b[i]=0; } } i...

2019-10-31 21:14:25 157

原创 第七章 分支限界算法

分支限界法类似于回溯法,是一种在问题的解空间树上搜索问题解的算法。 分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 分支限界法常以广度优先的方式搜索问题的解空间树。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。 活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导...

2019-10-31 21:12:57 472

原创 第五章 贪心算法

贪心算法和动态规划算法的比较 共同点: 最优子结构性质是选择类最优解都具有的性质,即全优一定包含局优 不同之处:在这里插入代码片 贪心算法具有贪心选择特性。贪心算法求得局部最优解(局部最优,不一定是全局最优) 动态规划算法从全局最优考虑问题 例一:活动安排问题 #include using namespace std; #define NUM 50 void GreedySelector(int ...

2019-10-31 20:44:47 150

原创 阶乘

阶乘 #include<iostream> using namespace std; int factorial(int i) { if(i==0) { return 1; } else { return i * factorial(i-1); } } int main() { cout <...

2019-10-31 20:31:12 113

原创 STL

1)容器(Container) 2)迭代器(Iterator) 3)算法(Algorithm) 4)函数对象(Function object) 5)适配器(Adaptor) 6)空间配制器(allocator) C++ 容器 迭代器 容器类 向量(vector) deque list set multiset map multimap 迭代器相关函数 begin() 返回一个迭代器,指向第一个元素...

2019-10-31 20:28:59 177

原创 动态规划

动态规划 基本概念 动态规划是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。 动态规划基本思想 动态规划算法通常用于求解具有某种最优性质的问题。 基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 过河卒 总时间限制: 1000ms 内存限制: 128000kB 描述 棋盘上A点有一个过河卒,需要走到目标B点。卒行走...

2019-10-31 20:25:40 63

原创 过河卒

基本概念 动态规划是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。 动态规划基本思想 动态规划算法通常用于求解具有某种最优性质的问题。 基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 过河卒 总时间限制: 1000ms 内存限制: 128000kB 描述 棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可...

2019-10-31 20:17:43 97

原创 循环赛日程

#include using namespace std; #define MAX 100 //对MAX进行替换,define是一个预处理指令,替换中不会占用内存,但是在使用时不会进行类别判断,不如const安全 int a[MAX][MAX];//定义一个二维数组 //对角复制 void Copy(int tox,int toy,int fromx,int fromy,int r){ for(...

2019-10-31 20:07:57 93

原创 递归和分治策略

直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 在计算机算法设计与分析中,使用递归技术往往使函数的定义和算法的描述简洁且易于理解。 对于大运算来说由于过程太多效率很低,且开销大,常用递推代替 编写一个递归函数,将10进制转化成radix进制(输出二进制形式) #include using namespace std; void change(int t,int r)...

2019-10-31 19:59:07 162

原创 位数问题

#include using namespace std; int main(){ int f[1001][2],n,i,x=9; cin>>n; f[1][1]=1;f[1][0]=9; for(i=2;i<=n;i++) { if(i==n) // i是最高位 x–; f[i][0]=(f[i-1][0]*x+f[i-1][1])%12345; f[i][1]=(f[i-1]...

2019-10-08 21:41:58 78

原创 蜜蜂

#include #define SIZE 15001 using namespace std; int f[SIZE] ; int main(){ int n, m, i; cin >> m >> n; f[m]=1; f[m+1]=1; for (i = m+2; i <= n; i++) f[i] = f[i-1] + f[i-2]; cout <<...

2019-10-08 21:41:09 85

原创 糖果

#include using namespace std; int main(){ int f[20] = {0}; f[1] = 1; f[2] = 2; for (int i = 3; i <= 20; i++){ f[i] = f[i - 1] + f[i - 2]; } int n; while (cin >> n){ cout << f[n] <&l...

2019-10-08 21:40:14 121

原创 猴子吃桃

#include using namespace std; int main(){ int f[11]; f[10]=1; for(int i=9;i>=1;i–) f[i]=2*(f[i+1]+1); cout<<f[1]<<endl; return 0; }

2019-10-08 21:39:39 56

原创 汉诺塔递归算法

汉诺塔递归算法 #include using namespace std; int main(){ int f[1000]={0,1}; int n; cin>>n; for(int i=2;i<=n;i++) f[i]=2*f[i-1]+1; cout<<f[n]<<endl; return 0; }

2019-10-08 21:38:20 124

原创 三角形问题

算法设计与分析之数字三角形问题 确定数据存储方式 使用两个二维数组,一个存放原始数据,一个存放计算过的路径数字和 因为存放的是金字塔形数据,所以这种方式牺牲了一些空间 确定分析方法 1.从上到下迭代,亦为顺推 2.从下到上迭代,亦为反推 编码 此过程最为简单,上述过程如果能够手动推出,代码实现没有太大问题 1 顺推法 #include /* 顺推法 */ using namespace std;...

2019-10-08 09:58:10 156

空空如也

空空如也

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

TA关注的人

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