03 2020 档案

摘要:问题: 对n个不同的数构成的数组A[1..n]进行排序,其中n=2k。 解析: 对于每个点集,分成l和r两个点集。 假设最近点对P,Q。 对于P,Q所属的点集共有三种情况: 1.P,Q同属于l点集 2.P,Q同属于r点集 3.P,Q属于不同点集 三者取最小值,既是我们需要求的最小值点。 分治思想,对 阅读全文
posted @ 2020-03-30 23:08 当然是斗笠呀 阅读(194) 评论(0) 推荐(0)
摘要:给出n个数,给出m个询问,每个询问要求输出区间[l,r]之间的数字的种类。(1 <= n , m , ai <= 1e5) 如果题目不要求强制在线的话,这样的题目可以考虑使用莫队算法。(注意数字的取值范围,如果数字是[1,1e9]那就不可以了) 首先拿到这道题目可以想到的最暴力的解法,遍历所有区间[ 阅读全文
posted @ 2020-03-29 18:54 当然是斗笠呀 阅读(220) 评论(0) 推荐(0)
摘要:1. 问题 l 二分归并排序:对n个不同的数构成的数组A[1..n]进行排序,其中n=2^k 2. 解析 二分归并排序采用了分治的思想,将序列不断划分成左右两个序列,然后依次将小序列进行排序,然后归并到大序列中。 3. 设计 void Mergesort(int l,int r) { int mid 阅读全文
posted @ 2020-03-23 22:14 当然是斗笠呀 阅读(1291) 评论(0) 推荐(0)
摘要:1. 问题 l 写出两种检索算法:在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。 2. 解析 常规检索算法:因为数组T已经排好序了,因此通过遍历,当T[i] > x时,仍然没有找到T[k] = 阅读全文
posted @ 2020-03-15 21:25 当然是斗笠呀 阅读(238) 评论(0) 推荐(0)
摘要:1.问题 对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径,按实验报告模板编写算法。 2.解析 第一点: 第二点:我们已经知道了起点s,一开始对于顶点s各个顶点的距离(用数组dis[j]表示s->j的距离),我们可以通过与顶点s相连的边得知。 假设顶点k,是距离顶点i最近的一个顶点(除去 阅读全文
posted @ 2020-03-09 23:48 当然是斗笠呀 阅读(304) 评论(0) 推荐(0)
摘要:1. 问题 用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵),按实验报告模板编写算法。 2. 解析 3.设计 void Floyd(int n ,int m ,int path[][1000]) { for(int k = 1 ; k < 阅读全文
posted @ 2020-03-09 23:45 当然是斗笠呀 阅读(488) 评论(0) 推荐(0)