自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python 数据类型要点注意

注意11、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。2、字符串可以用+运算符连接在一起,用*运算符重复。3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。4、Python中的字符串不能改变。注意21、List写在方括号之间,元素用逗号隔开。2、和字符串一样,list可以被索引和切片。3、List可以使用+操作符进行拼接。4、List中的元素是可以改变的。注意3tup1 = () # 空元组tup2 = (20,) # 一个元素,需要在元素后

2022-01-08 22:15:13 184 1

转载 【无标题】

print()与sys.stdout.write()区别stdout只能输出字符串,如果要输出数字,也需要先转成字符串形式的;print可以直接输出各种类型。stdout输出结果后不自动换行;print会自动换行。print默认调用了sys.stdout.write()方法将输出打印到控制台,也可通过file参数将输出打印到其他文件中f = open(‘test.txt’,‘a’)print(‘this is a test’,file=f)————————————————版权声明:本文为CSD

2022-01-08 20:09:02 93

原创 python语法1

多行注释可以用多个 # 号,还有 ‘’’ 和 “”":eg:‘’’第三注释第四注释‘’’eg:“”"第五注释第六注释“”"print (“Hello, Python!”)多行语句用反斜杠 \连接Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:total = item_one + item_two + item_three在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:total = [‘item_

2022-01-07 19:56:11 727

原创 Python3是个好东西嘞

Python3 简介Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。Python 是面向对象语言: 这意味着Python支持面

2022-01-07 13:46:18 96

原创 圆排列问题

1.问题圆排列问题:给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。2.解析给定n个圆c1,c2,…,cn,将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。先输入的n个圆半径,接着计算出最小长度和当前选择的圆中心的横坐标,最后算排列。圆排列问题的解空间是一棵排列树。 设置函数来找到的最小的圆排列长度。开始时,数组a储存的n个圆的半径,计算返回最优解的圆排列,还需计算当前圆排列中的圆的横坐

2020-06-11 18:14:04 1062 1

原创 图的m着色问题

1.问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.解析通过回溯的方法,不断的为每一个节点着色,在前面节点都合法的着色之后,开始对当前节点进行着色;用图的邻接矩阵表示无向连通图,顶点i所着的颜色用x[i]表示,通过和前一个节点相邻的节点的颜色对比,来判断这个颜色是否可行;如果找到那么一种颜色使得当前节点能够着色,那么说明多种颜色在当前是可行的。每个儿子对应的多

2020-06-11 16:20:28 291

原创 最优前缀码解析

1.问题给定字符集C=[x1,x2,…,xn]和每个字的频率f(xi) ,求关于C的一个最优前缀码解析2.设计哈夫曼算法//根据哈夫曼树求曼编码表int c, p;char cd[n + 1]//临时存放编码int start;//指示编码在cd中的起始位置cd[n] = ‘\0’;//编码结束符getchar();for (int i = 0; i < n; i++) {//依次求叶子T[i]的编码H[i].ch = getchar();start = n;c

2020-06-11 16:18:23 2039

原创 相容问题

1.问题有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。设S={1,2,…,n}为活动的集合,si和fi分别为活动i的开始和截止时间,i=1,2,…,n活动i和j相容<==>si≥fj或sj≥fi,i≠j 求S最大的两两相容的活动子集A。2.解析每次总是选择具有最早结束时间的活动,为未安排活动留下尽可能多的时间。该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的

2020-06-11 16:16:15 195

原创 LCS算法

1.问题查找两个序列的最长公共子序列 X 和 Z 是两个序列,其中X = <x1,x2,…,xm>,Z = <z1,z2,…,zm>如果存在 X 的元素构成的按下标严格递增序列 ,使 ,那么 Z 是 X 的子序列,Z 含有的元素个数,称为子序列的长度。2.解析3.设计1.最长子串长度C[0,j]=C[I,0]=0,1≤i≤m,1≤j≤nfor i=1 to mfor j=1 to nC[i,j]= C[i-1,j-1]+1i,j>0,xi=yj,B[i,j]

2020-06-08 15:16:27 115

原创 矩阵链乘法

1.问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]给定n个矩阵的链<A 1 ,A 2 ,…,A n >,其中i=1,2,…,n,矩阵A i的维数为p i-1 ×p i 。计算乘积A1 A2 …A n 所需的标量乘法次数最小。2.解析![](https://img-blog.csdnimg.cn/2020052413183785.png)动态规划Ai表示矩阵链相乘的子问题;m[i]:表示得到乘积Ai所用的最少基本运算次数;假定,最后一次相乘发生在

2020-05-24 13:20:11 238

原创 动态规划投资

1.问题设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n。问:如何分配这m元钱,使得投资的总效益最高?2.解析用动态规划的方法来对问题进行解决设Fk[x]表示x万元投给前k个项目的最大效益,k=1,2,…,n,x=1,2,…,m递推方程:F[k][x]=max{f[k][j]+F[k-1][x-j]} ,边界条件:F[1][x]=f[1][x] , F[k][0]=0 ,说明:第k步,共分配x万元其中分配给第k个项目为x万元;x-xk

2020-05-24 13:16:58 294

原创 分治算法求数组第k小元素

1.问题在 数组S中查找第k小的元素并输出(分治算法)2.解析将S分为多个组q,每组5个元素,有剩余的话,则排序剩余元素。 将q个组单独排序,每组找出中项,中项组成集合M,以M中项n作为标准,将S划分为两个子数组S1和S2,把这个数组中比n小的都放入S1的数组中,数组S1的元素个数是|S1|个;把这个数组中比n大的都放入S2的数组中,数组S2的元素个数是|S2|个。当要找的k<|S1|,就S1中找第k小的子问题。当要找的k=|S1|+1, n=k。当要找的k>|S1|+1,就在数组S

2020-05-24 13:13:39 4376 1

原创 分治法求解最近点对问题

1.问题分治法解最近对问题。2.解析1.当n<=3,通过蛮力算法求解;2.当n>3:对所有的点按照x坐标进行排序,根据x进行点集划分,求中位线,将点集以中位线为界划分,在中轴线处做一条垂线,将点集分为n/2和n/2两个子集Pl和Pr,不断对左右两个部分分别求最近点对的距离d,然后比较选出最短距离dmin =min(d1,d2);选出到中位线的距离均小于min的点,对集合Pl和Pr中的每个点 ,在y坐标区间[y,y+d]内最对取出8个候选点,计算与点p的最近距离d3;计算该部分点集中最小距

2020-05-24 13:04:28 556

原创 二分归并

1.问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k2.解析归并排序算法有两个基本的操作,一个是分,也就是把原数组划分成两个子数组的过程。另一个是并,它将两个有序数组合并成一个更大的有序数组。3.设计//归并int merge(int r[],int s[],int x,int y,int z){int i,j,k;//第一部分的开始位置i=x;//第二部分的开始位置j=y+1; k=x;while((i<=y)&&(j&l

2020-05-24 12:57:30 810

原创 检索算法

1.问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写2.解析1直接顺序查找:从第一个数遍历查找,如果没有,则输出0;2. 折半查找:从排好序的数组中间开始,若中间数大于指定元素,则从较小一边数查找,此时再折半查找,知道结束。3.设计1直接顺序查找:从第一个数遍历查找,如果没有,则输出0;void findK(int T[],int x) { int k=0;for (int i = 1; i &

2020-05-24 12:55:14 211

原创 Dijkstra算法求 最短路径

1.问题对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径,按实验报告模板编写算法。2. 解析设置集合,把顶点集合V分成两组S V,已求出的顶点(最短路径的顶点)的集合为S,未确定的顶点集合为v。初始化依次选取最短路径点的情况下:3.设计//先输入边长for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){scanf("%d",&aaa[i][j] ) ; }}for (w

2020-05-24 12:50:45 1143

原创 Floyd算法求解最短距离

1.问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。2.解析Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。如果要让任意两点之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转即a->k->b,才可能缩短原来从顶点a点到顶点b的路程。有时候不只通过一个点,而是经过两个点或者更多点中转会更短,即a->k1->k2->b

2020-05-22 19:34:15 809

原创 #采用Prim算法构造最小生成树

#采用Prim算法构造最小生成树##1问题在一个无向图中,其某个子图中任意两个顶点都互相连通并且是一棵树,称之为生成树;若每个顶点有权值,则其权值和最小的生成树为最小生成树。##2.解析从图中任意取出一个点作为定点,把它当成一棵树,然后从这棵树相接的边中选择一条最短的边 ,即权值最小边,并作为新树,此时得到的是一颗有两个顶点的树,然后从这两边相接的边中选取一条最短的边,并将这条边及其所连接...

2020-03-03 00:00:38 507

原创 Kurskal构造最小生成树

#Kurskal构造最小生成树##1问题在一个无向图中,其某个子图中任意两个顶点都互相连通并且是一棵树,称之为生成树;若每个顶点有权值,则其权值和最小的生成树为最小生成树。##2.解析kruskal是一个找边的算法,对于一V个顶点的图,必定由V-1条边构成一个最小生成树,那么按边的权值遍历图每一条边。判断如果添加这条选出的当前权最小的边,图中会不会生成一个环,如果生成环,则当前找到的这条边...

2020-03-03 00:00:01 258

空空如也

空空如也

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

TA关注的人

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