自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图的m着色问题

问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。解析利用回溯法。涂的时候从颜色1开始到m,每当涂上一个色,要判断第c个点是否可以涂这个色,不可以的话就不再往下涂了,改试另一个颜色,可以的话就继续。当c>n的时候即前n个点都涂完了,然后输出结果并cout++计数。设计void graphColor(int step) { if step == n t.

2020-06-01 13:11:57 212

原创 最有前缀码

1.问题给定字符集C={x1,x2,…,xn}和每个字符的频率f(xi),求关于C的一个最优前缀码。2.解析采用哈夫曼算法1.初始化n个单节点的树,每个字符的概率记在树的根中,用作树的权重。2.找到两棵权重最小的树,把它们作为新树中的左右子树,并把权重和记作新的权重记录在新树的根中。3.重复第二步到一颗单独的树。3.设计n<-|C|Q<-C for i<-1 to n-1 do z<-Allocate-Node() z.left&lt

2020-05-18 20:03:03 175

原创 相容问题

问题相容问题,解析时给出其他几种贪心策略(如按开始时间从小到大、每个活动时间的占用时间等),并给出这些贪心策略无法实现最优的反例。有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。解析设计int[] A=new int[10]; A[0]=m[0]; int x=1; ...

2020-05-06 11:08:10 148

原创 LCS

问题LCS算法,特别要求举例时采用不同于讲义的数据进行推导。解析Xi=<x1,x2,…,xi>Yj=<y1,y2,…,yj>Zk=<z1,z2,…,zk>如果Zk是Xi和Yj的最长公共子序列,(1)xi = yj,那么zk = xi = yj,Zk-1是Xi-1和Yj-1的最长公共子序列(2)xi ≠ yj,那么zk ≠ xi,Zk-1是Xi-...

2020-04-27 21:00:32 137

原创 矩阵连乘

1.问题问题:设A1,A2,……,An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,……,Pn>给出。给定向量P,确定一种乘法次序,使得具备运算的总次数达到最小。2.解析Ai…j:表示矩阵链相乘的子问题AiAi+1…Aj;m[i…j]:表示得到乘积Ai…j所用的最少基本运算次数;假定,最后一次相乘发生在矩阵链Ai…k和Ak+1…j...

2020-04-18 17:31:32 204

原创 投资问题

1. 问题设有m万元钱,n项投资,函数fi(x)表示将x万元投入第i项项目所产生的效益,i=1,2,…,n问:如何分配这m元钱,使得投资的总效益最高?2. 解析3. 设计For k=1,2,…,n //第k个项目 For x=0,1,2,…,m //k个项目共分配x元  For xk=0,1,2,…,x //第k个项目分配xk   Fk(x)=max{fi(xk)+Fk-1(x...

2020-04-12 15:16:20 185

原创 选第k小元素:特定分治策略

问题设L是n个元素的集合,从L中选取第k小的元素,其中1<=k<=n。这里第k小的元素是指,当L按从小到大排好序之后,排在第k个位置的元素。利用特定分治策略选出第k小的元素。解析设计输入: n个数的数组S,正整数k输出: S中的第k小元素1.将S划分成5个一组,共「n/5」个组2. 每组找一个中位数,把这些中位数放到集合M中3. m°←Select(M,[|M...

2020-04-06 20:33:41 391

原创 最近对

问题最近对问题要求在包含有n个点的集合S中,找出距离最近的两个点。假设 p1(x1,y1),p2(x2,y2),……,pn(xn,yn)是平面的n个点。解析分治法总体来说分为三个步骤:划分、求解子问题、合并我对这题的思路是,将集合S分为左右两个子集S1和S2,两个子集分别含有n/2个点,先在每个子集中递归地求其最接近的点对,再求最近的两点分别在两个集合中的点对,最后比较得出对短距离...

2020-03-29 13:57:50 241

原创 二分归并

问题是:二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k二分归并排序利用的是递归和分治技术实现的,将待排序列划分成越来越小的子序列,即,递归划分成长度为1的子序列,并进行归并,得到n/2(上取整)个长度为2或者1的子序列,然后再将这些子序列两两归并,直到得到一个完整的子序列为止。根据子序列划分的中间值n/2,也就是代码中的q,p为子序列的起始索引,r为子序列的末尾索引...

2020-03-22 20:24:10 275

原创 第三次作业

**在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.我采用两种算法,一种是顺序查找,另一种是二分查找。顺序查找就是一个一个找,找到就结束循环。复杂度为O(n)int shunxu(int x){ int j=0,i; for(i=1;i<=n;i++){ if(T[i]==x){ ...

2020-03-15 21:22:33 109

原创 算法第二次作业

Floyd通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入两个矩阵,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离。矩阵P中的元素b[i][j],表示顶点i到顶点j经过了b[i][j]记录的值所表示的顶点。假设图G中顶点个数为N,则需要对矩阵D和矩阵P进行N次更新。初始时,矩阵D中顶点a[i][j]的距离为顶点i到顶点j的权值;如果i和j不相...

2020-03-08 17:14:07 216

原创 算法分析与实践-作业1

求无向网的最小生成树的算法有两种:Prim和Kruskal,这两种都是生成最小生成树比较常见的方法。先说Prim算法:假设G=(V,E)为一网图,其中V为顶点的集合,E为边的集合。从某一顶点u1出发,选择与它关联的具有最小权值的边(u1, v),将其顶点v加入到生成树顶点集合U中。U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。令集合U的初值为U={u1} (假设构造最小生成...

2020-03-01 20:49:47 255

空空如也

空空如也

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

TA关注的人

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