![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
掌控ms
这个作者很懒,什么都没留下…
展开
-
动态规划|01背包问题
动态规划 定义:什么是动态规划?动态规划是运筹学的一个分支,适合于解决具有最优性质的问题。动态规划与分治法类试,都是把原问题分解为一个个子问题通过解决子问题来寻求原问题的答案,那么为什么还要有动态规划这个东西呢?每一个东西都有它独特的一面,当分解的子问题相互之间有交集是,此时运用动态规划能够减少很多的运算。在我看来如果把分治法看作猿猴那么分治法无疑是已经进化成人了。 举例子 1.01背包问题 现在有四件物品其所占体积和他们的价值分别是(5,6)(2,3)(3,4)(4,5)在体积为10的背包中求当背包中的物原创 2021-04-24 10:31:52 · 311 阅读 · 0 评论 -
快排c++\c
#include<iostream> using namespace std; int partsort(int *arry, int low, int high) { int pivot = arry[low]; while (low < high) { while (low < high&&arry[high] >= pivot) { high--; } arry[low] = arry[high]; while (low &原创 2021-03-10 20:42:40 · 95 阅读 · 0 评论 -
递归分组
从1到10分成两组 #include<iostream> #include<cstring> #include<cmath> using namespace std; int s[10] = { 1,2,3,4,5,6,7,8,9 ,10}; int s1[10]; int s2[10]; int index1; int index2; int ans = 0; void divide(int index) { if (index == 10) { for (in原创 2020-12-10 18:46:42 · 341 阅读 · 1 评论 -
m个变量相加为n
m个变量相加为n,列举出所有的结果。 #include<iostream> using namespace std; int n; int m; int all = 0; void bfs(int index, int sum) { if (index >= m) { cout << n - sum << ' ' << endl; return; } for (int i = 0; i <= n - sum; i++) { c原创 2020-12-09 22:04:00 · 196 阅读 · 0 评论 -
递归求数组全排
#include<iostream> using namespace std; #include<string> int arry[10] = { 1,2,3,4,5,6,7,8,9,10 }; int hash_arry[10] = { 0 }; int mark_arry[10] = { 0 }; int c=0; int index = 0; void creat() { if (index >= 10) { c++; return; } for (int原创 2020-12-09 21:26:45 · 65 阅读 · 0 评论 -
kmp算法
已知 首先我想说kmp算法是一种规律,了解了那个规律之后再来看这个代码才好,不过就算不了解,看看这第一个函数还是很有意思的。` #include<iostream> using namespace std; void next_ps(int*next, int len, char *s) { int k = 0; next[0] = -1; for (int i = 1; i < len; i++) { while (k > -1 && s原创 2020-10-26 20:11:38 · 71 阅读 · 0 评论