
python
笑子i
这个作者很懒,什么都没留下…
展开
-
凸多边形最优三角剖分(动态规划)
【问题描述】使用动态规划算法解凸多边形最优三角剖分问题,具体来说就是,依据递归式,按照顺序求得子问题,使得该三角剖分中诸三角形上权之和为最小。【输入形式】在屏幕上输入凸多边形顶点个数和顶点坐标。按逆时针顺序输入顶点坐标。【输出形式】最优三角剖分后的三角形顶点。【样例输入】 7 8 26 0 20 0 10 10 0 22 12 27 21 15 26【样例输出】 012 234 024 456 046【样例说明】 输入:顶点个数为7,每一行为一个顶点坐标,以空格分隔。如下图所示,第二行至第八行分别为顶点v0原创 2022-06-23 09:10:04 · 1322 阅读 · 1 评论 -
哈夫曼编码(贪心算法)
【问题描述】使用贪心算法求解Huffman编码问题,具体来说就是,根据每个字符的出现频率,使用最小堆构造最小优先队列,构造出字符的最优二进制表示,即前缀码。【输入形式】在屏幕上输入字符个数和每个字符的频率。【输出形式】每个字符的Huffman编码。【样例输入】 6 45 13 12 16 9 5【样例输出】a 0b 101c 100d 111e 1101f 1100【样例说明】 输入:字符个数为6,a至f每个字符的频率分别为:45, 13, 12, 16, 9, 5。 输出:每个字符对应的Huffman编码原创 2022-06-23 09:04:19 · 1534 阅读 · 0 评论 -
单元最短路径(贪心算法)
【问题描述】Dijkstra算法解决的是带权重的有向图上单源最短路径问题。所有边的权重都为非负值。设置顶点集合S并不断地作贪心选择来扩充这个集合。使用最小堆数据结构构造优先队列。第1个顶点为源。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的权矩阵。【输出形式】从源到各个顶点的最短距离及路径。【样例输入】50 10 0 30 1000 0 50 0 00 0 0 0 100 0 20 0 600 0 0 0 0【样例输出】10: 1->250: 1->4->330: 1->460: 1->4->3->5【原创 2022-06-23 09:02:07 · 876 阅读 · 0 评论 -
最小生成树prime(贪心算法)
【问题描述】Prim算法解决的是带权重的无向图上连接所有顶点的耗费最小的生成树。Q使用最小堆数据结构。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的权矩阵。【输出形式】顺序输出按照贪心选择得到的各顶点序号,及该顶点的前驱顶点序号,及路径长度。【样例1输入】80 15 7 0 0 0 0 1015 0 0 0 0 0 0 07 0 0 9 12 5 0 0 0 0 9 0 0 0 0 00 0 12 0 0 6 0 00 0 5 0 6 0 14 80 0 0 0 0 14 0 310 0 0 0 0 8原创 2022-06-23 08:58:30 · 417 阅读 · 0 评论 -
深度优先搜索算法求解TSP问题(搜索算法)
【问题描述】采用深度优先搜索算法求解TSP问题,并在搜索过程中,使用界限条件(当前结点已经走过的路径长度要小于已求得的最短路径)进行“剪枝”操作(不再对后续结点进行遍历),从而提高搜索效率。采用queue模块中的栈(LifoQueue)来实现深度优先搜索。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的邻接矩阵,边上的权可能有小数点。【输出形式】在整个算法过程中的先后搜索路径(最多输出20次最先搜索的路径),最优值和其中一条最优路径。【样例1输入】40 30 6 430 0 5 106 5 0 204 1原创 2022-06-23 08:57:11 · 790 阅读 · 0 评论 -
优先队列搜索算法求解TSP问题(搜索算法)
【问题描述】采用优先队列搜索算法求解TSP问题,用一最小堆来存储活结点表,其优先级是结点的当前费用。并在搜索过程中,使用界限条件(当前结点已经走过的路径长度要小于已求得的最短路径)进行“剪枝”操作(不再对后续结点进行遍历),从而提高搜索效率。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的邻接矩阵,边上的权可能有小数点。【输出形式】在整个算法过程中的先后搜索路径(最多输出20次最先搜索的路径),最优值和其中一条最优路径。【样例1输入】40 30 6 430 0 5 106 5 0 204 10 20 0【原创 2022-06-23 08:55:35 · 471 阅读 · 1 评论 -
全排列问题(递归与分治)python
【问题描述】对n个整数进行全排列【输入形式】在屏幕上输入若干个整数,各数间都以一个空格分隔。【输出形式】按照顺序每行输出一种排列方式【样例输入】 1 2 3【样例输出】1 2 31 3 22 1 32 3 13 2 13 1 2【样例说明】 输入:三个整数,分别为1,2,3,以空格分隔。 输出:按照顺序每行输出一种排列方式,以空格分隔【评分标准】根据输入得到准确的输出...原创 2022-06-23 08:39:58 · 112 阅读 · 0 评论