C++
北斋~~书生
这个作者很懒,什么都没留下…
展开
-
把数字转换为string类型
程序很简单#include<bits/stdc++.h>using namespace std;main() { string s[7]; for(int i=1;i<=3;i++) { s[i]+=('0'+i); cout<<s[i]<<endl; }}运行结果:123--------------------------------Process exited after 0.267原创 2020-11-17 08:45:25 · 861 阅读 · 1 评论 -
矩阵链乘法(动规)
问题: 给定n个矩阵的链<A 1 ,A 2 ,…,A n >,其中i=1,2,…,n,矩阵A i的维数为p i-1 ×p i 。求一个完全“括号化方案”,使得计算乘积A 1 A 2 …A n 所需的标量乘法次数最小分析:– 代码如下:在这里插入代码片...原创 2020-07-28 08:16:34 · 253 阅读 · 0 评论 -
最大k乘积问题动态规划
设I是一个 n位十进制整数。如果将I划分为 k段,则可得到k个整数。这k个整数的 乘积称为I的一个 k乘积。试设计一个算法,对于给定的 I和 k,求出 I的最大 k乘积。 对于给定的I和k,计算 I的最大 k乘积.输入:第1 行中有2个正整数n和 k。正整数 n是序列 的长度;正整数k是分割的段数。接下来的一行中是一个n位十进制整数。(n<=10)输出:输出最大k乘积分析:c++代码://最大k乘积问题 #include<bits/stdc++.h>using原创 2020-07-07 21:34:31 · 1153 阅读 · 0 评论 -
分治算法解决众数问题
题目:给定含有n个元素的多重集合s, 每个元素在s中出现的次数称为该元素的重数。多重集s中重数最大的元素称为众数,如s = {1,2,2,2,5,3}。多重集s的众数是2,其重数为3。分析:先用快速排序给数组从小到大排好序,接着找出中位数,(元素个数除2就是它的位置),以中位数为参考点,找出中位数的最左最右边界,例如上面的就是1和3,再以2个边界把数组分成2半,中位数个数与左端个数(数组最低位置到中位数的左边界)比较,中<左 即最大众数可能存在左端,将左端再进行2段分割(递归)直到 中 >原创 2020-07-05 20:19:35 · 5029 阅读 · 1 评论 -
c++超简单的最短编辑距离问题
操作有3种:删除、替换、插入问题:把字符串A变为B的最少操作次数。例如:动态规划思想:递推公式:代码:在这里插入代码片原创 2020-06-09 19:33:59 · 964 阅读 · 0 评论 -
c++之超简单的归并排序
归并排序:基于递归思想,是一种递归树法。==将目标数组拆分成两半,对每半在进行拆分,如此不断进行下去,直到数组的左边界大于右边界,形成交叉才结束。每一次拆分都要进行合并,把拆分的两个数组合并成一个。代码如下:#include<bits/stdc++.h>using namespace std;#define N 1000int a[N],b[N]; int n;using namespace std;void Merge(int left,int mid,int rig.原创 2020-06-05 22:20:36 · 307 阅读 · 1 评论 -
最大子团问题回溯法
问题:一个无向图 G=(V,E),V 是点集,E 是边集。取 V 的一个子集 U,若对于 U 中任意两个点 u 和 v,有边 (u,v)∈E,那么称 U 是 G 的一个完全子图。 U 是一个团当且仅当 U 不被包含在一个更大的完全子图中。G的最大团指包含顶点数最多的一个团。解法:<x1,x2…xn>为0-1向量, xk=1表示顶点k在最大团中。搜索树为子集树,约束条件:当前...原创 2020-05-06 16:57:57 · 716 阅读 · 0 评论 -
分而治之的随机化快速排序
利用分而治之的思想,思路是在数组中随机产生一个下标,把它代表的值当做主元。//随机快速排序 #include<bits/stdc++.h>using namespace std;const int N = 210;int a[N];int Par(int p,int r)//分组{ int x=a[r], i=p-1; for(int j=p;j<=r-1...原创 2020-04-13 22:55:37 · 131 阅读 · 0 评论 -
解决钢条切割问题
最优值:是总收益最大。递推公式:分为切与不切: //钢条切割 #include<bits/stdc++.h> using namespace std;#define M 101int c[M], p[M];//c[n]长度为n最大收益,p[n]钢条长度为n的价格 int rec[M]; //记录长度为n最优方案 main(){ int n, q; co...原创 2020-04-13 18:20:37 · 194 阅读 · 0 评论 -
带权值的活动选择问题
带权值的活动选择不是一个贪心算法,而是要用动态规划来求解。首先看他是否满足动态规划的要求吗?含有重叠子问题有最优解使总的收益最大先给活动按结束时间进行排序。活动必须一个结束后,另一个才能开始,所以记录每个活动开始前,那个活动最后结束。递推公式:D[i], p[i], 数组的含义在下面代码中,建立一个数组记录哪些活动被选择。//活动选择权值最大问题 #include<...原创 2020-04-13 18:07:30 · 2061 阅读 · 5 评论 -
c++简单解决0-1背包问题
c++代码如下:原创 2020-04-01 13:42:58 · 490 阅读 · 0 评论 -
c++输入输出和模板
[Error] stray ‘’ in program[Error] stray ‘’ in program把\n写在双引号里面原创 2020-03-21 09:31:47 · 498 阅读 · 0 评论 -
C++string类
用string类包含头文件**< string >1, 初始化:~~string s1(“he”);~~ string m = “march”;~~ string s2(2,‘x’ ); //2个x可以把字符串赋值给string对象~~ string s;~~ s = ‘n’ ;string对象长度用length()读取string支持流读取运算符~~ string...原创 2020-03-16 22:52:23 · 94 阅读 · 0 评论 -
c++中set,map用法
set:#include <iostream>#include<set>using namespace std;main(){ typedef set<int>::iterator tt; int a[5]={3,4,6,1,2}; set<int> st(a,a+5); //st是12346 pair<tt,bool>...原创 2020-03-15 23:12:02 · 182 阅读 · 0 评论 -
C++字符串的全排列
给定一个全由小写字母构成的字符串,求它的全排列,按照字典序从小到大输出。输入格式:一行,一个字符串,长度不大于8。输出格式:输出所有全排列,每行一种排列形式,字典序从小到大。输入样例:在这里给出一组输入。例如:abc输出样例:在这里给出相应的输出。例如:abcacbbacbcacabcba这道题可以使用C++所给的函数STL里的全排函数——next_permuta...原创 2020-03-15 09:15:43 · 5119 阅读 · 0 评论