自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小伏同学的博客

秃头小伏,烦恼全无!!!

  • 博客(7)
  • 收藏
  • 关注

原创 动态规划 0/1背包问题 (Java)

使用动态规划算法求解0/1背包问题 注意和背包问题进行区分,0/1背包表示此物品只有两种情况:装入1和不装入0,且容量均为整数 import java.util.Scanner; public class Knapsack { public static void main(String[] args) { int n=4;//物品的个数n; int Volume,KnapsackVol=4;//背包的容量KnapsackVol=4; Scanner scan=new Scanner(System.i

2021-05-12 16:30:46 229

原创 第三章动态规划 矩阵连乘问题

给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。将矩阵连乘积简记为A[i:j] ,这里i≤j, 考察计算A[i:j]的最优计算次序。设这个计算次序在矩阵Ak和Ak+1之间将矩阵链断开,i≤k<j。 计算量:A [ i : k ]的计算量加上A [ k+1: j ] 的计算量,再加上A[i:k]和A[k+1:j]相乘的计算量。 例题: 设要计算矩阵连乘乘积A1A2A3A4..

2021-05-07 21:12:08 1225

原创 PTA 整型关键字的散列映射

7-42 整型关键字的散列映射 (25 分) 给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key) = Key % P将关键字映射到长度为P的散列表中。用线性探测法解决冲突。 输入格式: 输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。 输出格式: 在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。 输入样例: 4 5 24 15 6

2021-04-23 19:14:32 336

原创 期望为线性时间的选择算法(随机)

C++代码如下:(如有错误望友友们指正,万分感谢) 期望为线性时间的选择算法 #include<iostream> using namespace std; //number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE; int Randompartion(int *a,int p,int r)//和快排的Partition类似,只不过使用了rand()获取随机数 { int i=rand()%(r-p+1)+p;//获取随机

2021-04-23 16:22:57 114

原创 基数排序 C++

C++代码如下(仅练习使用,若有错误,望友友们指正,多谢!) #include<iostream> using namespace std; int getKNum(int a,int k)//获取个十百位上的值 { int n=a; int t=1; for(int j=1;j<=k;j++) { t*=10; } int x=(a/t)%10; return x; } void CountSort(int *a,i

2021-04-23 16:20:14 295

原创 例2-5整数划分问题

整数划分问题 n为整数和,n1为最大的加数,将最大加数n1不大于m的划分个数记作Divide(n,m); 代码如下: #include<iostream> using namespace std; int Divide(int n,int m) { if(n==0||m==0) return 0; if(n==1||m==1)//和为n,n=1或者m=1,不管另一个参数的值为什么,结果都只有一种 return 1; if(n<m

2021-04-23 11:57:40 221

原创 HanoiTower汉诺塔问题(递归C++)

问题:解决将n个盘子从A移动到B,借助辅助盘C,需要多少次?描述每一步过程 代码如下: #include<iostream> #include<cstdio> using namespace std; int num;//移动的总次数; void Hanoi(int n,char a,char b,char c)//从a移动到b,c为辅助 { if(n==1) { num++; printf("将%d盘从%c移动到%c\n",n,a,b

2021-04-23 11:13:14 117

空空如也

空空如也

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

TA关注的人

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