- 博客(13)
- 收藏
- 关注
原创 回溯搜索与剪枝的实现
if(max_w>bag) printf("\n该方案总价%d,总重%d,超重!printf("\n该方案总价%d,总重%d,可行\n",max_v,max_w);if(max_v>max_value)//此处应考虑是否更新max_value的值。printf("物品%d,价值%d,重量%d\n",i,v[i],w[i]);printf("能获得的最大价值为:%d\n",backpack(a,v,w,N,0));bool constraint(int a[],int w[],int t)//约束剪枝判断。
2023-06-03 22:18:29 55
原创 贪心算法二
设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti,1≤i≤n。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务完成的时间总和除以n。printf("第%d窗口上顾客接受服务的顺序为:",a+1);printf("请输入可服务地方的数目(s):");printf("平均等待时间为:%d",time);printf("请依次输入顾客所需服务时间:");printf("请输入顾客数目(n):");输入 N个顾客的服务时间,并设置服务窗口数量s,
2023-06-03 21:45:40 49
原创 贪心算法。
cout<<"重量为"<<w[i]<<"价值量为"<<v[i]<<"的物品"<<"放入的比例为"<<x[i]<<endl;给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包最大承载重量为C。cout<<"请输入每件物品的重量和价值量:"<<endl;,应如何选择装入背包的物品,使得装入背包中物品的总价值最大?cout<<"请输入背包最大容纳量:"<<endl;cout<<"请输入物品数:"<<endl;定义N个物品的基本数据和背包容量C,//按照单价大小降序排列。
2023-06-03 21:37:02 47
原创 备忘录方法
给定等腰直角数字三角形,请确定从顶至底的某个位置的一条路径,使该路径所经过的数字的总和最大。假设每一步可延直线向下或右斜线向下走。//从数字三角的(0,0)至(M-1,M-1)的最大和。printf("TrackSolution(追踪解)如下:\n");printf("随机数生成数字三角形如下:\n");printf("备忘录m三角形如下:\n");//数字下三角的行列数。
2023-04-25 16:21:00 78
原创 最长公共子序列
给定序列X、Y,当另一序列Z既是X的子序列又是Y的子序列,且对于其他任意公共子序列W,都有|W| ≤ |Z|,则称Z是X和Y的最长公共子序列,记为LCS(X,Y)。printf("X和Y的LCS: %d \n",s);printf("X和Y的LCS是:");printf("请输入字符串X:");printf("请输入字符串Y:");最长公共子序列的长度和其中包含的元素。//打印X和Y的LCS。
2023-04-25 16:19:25 29
原创 动态规划算法2
给定n个整数(可能为负数)组成的序列X,求该序列如x[i]+x[i+1]+…+x[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,x[i]+x[i+1]+…+x[j]},1<=i<=j<=n。printf("枚举:\n sum=%d\n",MaxSum(30,a,besti,bestj));printf("分治:\n sum=%d\n",MaxSubSum(a,0,30));printf("动态规划:\n sum=%d",MSum(30,a));
2023-04-25 16:13:21 35
原创 动态规划算法
if(i==0&&j!if(i==0&&j!printf("递推小萝卜最优结果为%d\n",c[4][4]);printf("最优萝卜矩阵如下:\n");printf("一片萝卜地如下:\n");//萝卜数矩阵,最优萝卜数矩阵。
2023-04-25 16:07:29 41
原创 分治算法2
/找到key,返回所在位置(递归结束)printf("位置在数组第%d个",BinSearch(a,0,9,key));//找到key,返回所在位置(递归结束)return -1;return -1;
2023-04-25 16:06:05 67
原创 分治算法。
void QuickSort(int s[], int start, int end) { // 定义函数QuickSort()void QuickSort(int s[], int start, int end) { // 定义函数QuickSort()s[i] = s[j];// 将s[j]放到s[i]的位置上。// 将大于基准值的s[j]放到s[i]位置。// 将s[j]放到s[i]的位置上。// 将大于基准值的s[j]放到s[i]位置。
2023-04-15 23:21:19 36
原创 递归算法的基本思想与实现
输入任意一个不大于9位的正整数,输出各位数的逆序形式,例如:输入12345,输出54321。请分别利用递归和递推两种方式编写程序求解问题。分治算法就是把1个分为多个,递归法就是把多个归一的解决问题方法。void oppsite(int n) { //逆序输出函数。printf("将%d进行操作",n);边界条件(基本项)和递归方程。
2023-04-15 22:29:56 97 1
原创 排序算法数据
对照插入排序算法的伪代码编程实现插入排序算法,输出数组检查排序编程结果的正确性。:编程实现随机数生成,将随机数保存到数组中。printf("排序后:");
2023-04-11 18:10:37 44
原创 完美立方求解
请按照a的值,从小到大依次输出。当两个完美立方等式中a值相同时,b值小的优先输出,若b仍相同,c值小的优先输出,c再相同时d值小的先输出。时间单位过于依赖于特定计算机的选择和技术的演变,并且不同机器上执行一条语句的时间各不相同,以时间作为度量没有意义。
2023-04-11 11:41:48 85 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人