<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ftp125的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ftp125</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ftp125]]></copyright><item><title><![CDATA[python 数据类型要点注意]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/122386492</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/122386492</guid><author>ftp125</author><pubDate>Sat, 08 Jan 2022 22:15:13 +0800</pubDate><description><![CDATA[注意1
1、反斜杠可以用来转义，使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起，用*运算符重复。
3、Python中的字符串有两种索引方式，从左往右以0开始，从右往左以-1开始。
4、Python中的字符串不能改变。
注意2
1、List写在方括号之间，元素用逗号隔开。
2、和字符串一样，list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
注意3
tup1 = ()    # 空元组
tup2 = (20,) # 一个元素，需要在元素后]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/122385526</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/122385526</guid><author>ftp125</author><pubDate>Sat, 08 Jan 2022 20:09:02 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[python语法1]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/122363648</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/122363648</guid><author>ftp125</author><pubDate>Fri, 07 Jan 2022 19:56:11 +0800</pubDate><description><![CDATA[多行注释可以用多个 # 号，还有 ‘’’ 和 “”"：
eg:
‘’’
第三注释
第四注释
‘’’
eg:
“”"
第五注释
第六注释
“”"
print (“Hello, Python!”)
多行语句用反斜杠 \连接
Python 通常是一行写完一条语句，但如果语句很长，我们可以使用反斜杠 \ 来实现多行语句，例如：
total = item_one + 
item_two + 
item_three
在 [], {}, 或 () 中的多行语句，不需要使用反斜杠 \，例如：
total = [‘item_]]></description><category></category></item><item><title><![CDATA[Python3是个好东西嘞]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/122362653</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/122362653</guid><author>ftp125</author><pubDate>Fri, 07 Jan 2022 13:46:18 +0800</pubDate><description><![CDATA[Python3 简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性，相比其他语言经常使用英文关键字，其他语言的一些标点符号，它具有比其他语言更有特色语法结构。
Python 是一种解释型语言： 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言： 这意味着，您可以在一个 Python 提示符 &gt;&gt;&gt; 后直接执行代码。
Python 是面向对象语言: 这意味着Python支持面]]></description><category></category></item><item><title><![CDATA[圆排列问题]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106694260</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106694260</guid><author>ftp125</author><pubDate>Thu, 11 Jun 2020 18:14:04 +0800</pubDate><description><![CDATA[1.问题
圆排列问题：给定n个圆的半径序列，将它们放到矩形框中，各圆与矩形底边相切，求具有最小排列长度的圆排列。
2.解析
给定n个圆c1,c2,…,cn，将这n个圆排进一个矩形框中，且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。

先输入的n个圆半径，接着计算出最小长度和当前选择的圆中心的横坐标，最后算排列。圆排列问题的解空间是一棵排列树。 设置函数来找到的最小的圆排列长度。开始时，数组a储存的n个圆的半径，计算返回最优解的圆排列，还需计算当前圆排列中的圆的横坐]]></description><category></category></item><item><title><![CDATA[图的m着色问题]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106691386</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106691386</guid><author>ftp125</author><pubDate>Thu, 11 Jun 2020 16:20:28 +0800</pubDate><description><![CDATA[1.问题
图的m着色问题。给定无向连通图G和m种颜色，用这些颜色给图的顶点着色，每个
顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方
案；如果不存在，则回答“NO”。
2.解析
通过回溯的方法，不断的为每一个节点着色，在前面节点都合法的着色之后，开始对当前节点进行着色；用图的邻接矩阵表示无向连通图，顶点i所着的颜色用x[i]表示，通过和前一个节点相邻的节点的颜色对比，来判断这个颜色是否可行；如果找到那么一种颜色使得当前节点能够着色，那么说明多种颜色在当前是可行的。每个儿子对应的多]]></description><category></category></item><item><title><![CDATA[最优前缀码解析]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106691306</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106691306</guid><author>ftp125</author><pubDate>Thu, 11 Jun 2020 16:18:23 +0800</pubDate><description><![CDATA[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 &lt; n; i++) {
//依次求叶子T[i]的编码
H[i].ch = getchar();
start = n;
c ]]></description><category></category></item><item><title><![CDATA[相容问题]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106691251</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106691251</guid><author>ftp125</author><pubDate>Thu, 11 Jun 2020 16:16:15 +0800</pubDate><description><![CDATA[1.问题
有n项活动申请使用同一个礼堂，每项活动有一个开始时间和一个截止时间。
如果任何两个活动不能同时举行，问如何选择这些活动，从而使得被安排的活动数量达到最多。
设S={1,2,…,n}为活动的集合，si和fi分别为活动i的开始和截止时间，i=1,2,…,n
活动i和j相容&lt;==&gt;si≥fj或sj≥fi，i≠j 求S最大的两两相容的活动子集A。
2.解析
每次总是选择具有最早结束时间的活动，为未安排活动留下尽可能多的时间。该算法的贪心选择的意义是使剩余的可安排时间段极大化，以便安排尽可能多的]]></description><category></category></item><item><title><![CDATA[LCS算法]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106619824</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106619824</guid><author>ftp125</author><pubDate>Mon, 08 Jun 2020 15:16:27 +0800</pubDate><description><![CDATA[1.问题
查找两个序列的最长公共子序列 X 和 Z 是两个序列，其中X = &lt;x1,x2,…,xm&gt;，Z = &lt;z1,z2,…,zm&gt;如果存在 X 的元素构成的按下标严格递增序列 ，使 ，那么 Z 是 X 的子序列，Z 含有的元素个数，称为子序列的长度。
2.解析

3.设计
1.最长子串长度
C[0,j]=C[I,0]=0,1≤i≤m,1≤j≤n
for i=1 to m
for j=1 to n
C[i,j]= C[i-1,j-1]+1
i,j&gt;0,xi=yj,B[i,j]]]></description><category></category></item><item><title><![CDATA[矩阵链乘法]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313850</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313850</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 13:20:11 +0800</pubDate><description><![CDATA[1.问题
[描述算法问题，首选形式化方式（数学语言），其次才是非形式化方式（日常语言）]
给定n个矩阵的链&lt;A 1 ,A 2 ,…,A n &gt;，其中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所用的最少基本运算次数；假定，最后一次相乘发生在]]></description><category></category></item><item><title><![CDATA[动态规划投资]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313830</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313830</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 13:16:58 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[分治算法求数组第k小元素]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313742</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313742</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 13:13:39 +0800</pubDate><description><![CDATA[1.问题
在 数组S中查找第k小的元素并输出（分治算法）
2.解析
将S分为多个组q，每组5个元素，有剩余的话，则排序剩余元素。 将q个组单独排序，每组找出中项，中项组成集合M，以M中项n作为标准，将S划分为两个子数组S1和S2，把这个数组中比n小的都放入S1的数组中，数组S1的元素个数是|S1|个；把这个数组中比n大的都放入S2的数组中，数组S2的元素个数是|S2|个。
当要找的k&lt;|S1|，就S1中找第k小的子问题。
当要找的k=|S1|+1， n=k。
当要找的k&gt;|S1|+1，就在数组S]]></description><category></category></item><item><title><![CDATA[分治法求解最近点对问题]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313664</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313664</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 13:04:28 +0800</pubDate><description><![CDATA[1.问题
分治法解最近对问题。
2.解析
1.当n&lt;=3，通过蛮力算法求解；
2.当n&gt;3：对所有的点按照x坐标进行排序，根据x进行点集划分，求中位线，将点集以中位线为界划分，在中轴线处做一条垂线，将点集分为n/2和n/2两个子集Pl和Pr，不断对左右两个部分分别求最近点对的距离d，然后比较选出最短距离dmin =min(d1,d2)；选出到中位线的距离均小于min的点，对集合Pl和Pr中的每个点 ，在y坐标区间[y,y+d]内最对取出8个候选点，计算与点p的最近距离d3；计算该部分点集中最小距]]></description><category></category></item><item><title><![CDATA[二分归并]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313635</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313635</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 12:57:30 +0800</pubDate><description><![CDATA[1.问题
二分归并排序：对n个不同的数构成的数组A[1…n]进行排序，其中n=2^k
2.解析
归并排序算法有两个基本的操作，一个是分，也就是把原数组划分成两个子数组的过程。另一个是并，它将两个有序数组合并成一个更大的有序数组。

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&lt;=y)&amp;&amp;(j&l]]></description><category></category></item><item><title><![CDATA[检索算法]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313596</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313596</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 12:55:14 +0800</pubDate><description><![CDATA[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 &]]></description><category></category></item><item><title><![CDATA[Dijkstra算法求 最短路径]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106313519</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106313519</guid><author>ftp125</author><pubDate>Sun, 24 May 2020 12:50:45 +0800</pubDate><description><![CDATA[1.问题
对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径，按实验报告模板编写算法。
2. 解析
设置集合，把顶点集合V分成两组S  V，已求出的顶点（最短路径的顶点）的集合为S，未确定的顶点集合为v。
初始化

依次选取最短路径点的情况下：

3.设计
//先输入边长
for (int i = 0; i &lt; n; i++)
{
for (int j = 0; j &lt; n; j++)
{
scanf("%d",&amp;aaa[i][j]  ) ;
     }

}
for (w]]></description><category></category></item><item><title><![CDATA[Floyd算法求解最短距离]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/106289676</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/106289676</guid><author>ftp125</author><pubDate>Fri, 22 May 2020 19:34:15 +0800</pubDate><description><![CDATA[1.问题
用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵（顶点之间的最短距离矩阵）。
2.解析
Floyd算法又称为插点法，是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法，与Dijkstra算法类似。
如果要让任意两点之间的路程变短，只能引入第三个点（顶点k），并通过这个顶点k中转即a-&gt;k-&gt;b，才可能缩短原来从顶点a点到顶点b的路程。有时候不只通过一个点，而是经过两个点或者更多点中转会更短，即a-&gt;k1-&gt;k2-&gt;b]]></description><category></category></item><item><title><![CDATA[#采用Prim算法构造最小生成树]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/104621966</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/104621966</guid><author>ftp125</author><pubDate>Tue, 03 Mar 2020 00:00:38 +0800</pubDate><description><![CDATA[#采用Prim算法构造最小生成树
##1问题
在一个无向图中，其某个子图中任意两个顶点都互相连通并且是一棵树，称之为生成树；若每个顶点有权值，则其权值和最小的生成树为最小生成树。
##2.解析
从图中任意取出一个点作为定点，把它当成一棵树，然后从这棵树相接的边中选择一条最短的边 ，即权值最小边，并作为新树，此时得到的是一颗有两个顶点的树，然后从这两边相接的边中选取一条最短的边，并将这条边及其所连接...]]></description><category></category></item><item><title><![CDATA[Kurskal构造最小生成树]]></title><link>https://blog.youkuaiyun.com/ftp125/article/details/104621987</link><guid>https://blog.youkuaiyun.com/ftp125/article/details/104621987</guid><author>ftp125</author><pubDate>Tue, 03 Mar 2020 00:00:01 +0800</pubDate><description><![CDATA[#Kurskal构造最小生成树
##1问题
在一个无向图中，其某个子图中任意两个顶点都互相连通并且是一棵树，称之为生成树；若每个顶点有权值，则其权值和最小的生成树为最小生成树。
##2.解析
kruskal是一个找边的算法，对于一V个顶点的图，必定由V-1条边构成一个最小生成树，那么按边的权值遍历图每一条边。判断如果添加这条选出的当前权最小的边，图中会不会生成一个环，如果生成环，则当前找到的这条边...]]></description><category></category></item></channel></rss>