摘要: Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼 阅读全文
posted @ 2019-01-16 22:12 DWVictor 阅读(1599) 评论(0) 推荐(1) 编辑
摘要: 离散化,就是把一些很离散的点给重新分配。举个例子,如果一个坐标轴很长(>1e10),给你1e4个坐标,询问某一个点,坐标比它小的点有多少。 很容易就知道,对于1e4个点,我们不必把他们在坐标轴上的位置都表示出来,因为我们比较有多少比它小的话,只需要知道他们之间的相对大小就可以,而不是绝对大小,这,就 阅读全文
posted @ 2019-01-16 22:08 DWVictor 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=1000 阅读全文
posted @ 2019-01-16 22:02 DWVictor 阅读(138) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3790 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input 输入n,m,点的编号是1~n,然后是m行,每 阅读全文
posted @ 2019-01-16 21:59 DWVictor 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 问题描述 对于一串数A={a1a2a3…an},它的子序列为S={s1s2s3…sn},满足{s1<s2<s3<…<sm}。求A的最长子序列的长度。 动态规划法 算法描述: 设数串的长度为n,L[i]为以第i个数为末尾的最长上升子序列的长度,a[i]为数串的第i个数。 L[i]的计算方法为:从前i- 阅读全文
posted @ 2019-01-16 21:56 DWVictor 阅读(701) 评论(0) 推荐(1) 编辑
摘要: 1、哈夫曼树的基本概念 哈夫曼(Huffman)树又称作最优二叉树,它是n个带权叶子结点构成的所有二叉树中,带权路径长度最小的二叉树。 “路径”就是从树中的一个结点到另一个结点之间的分支构成的部分,而分支的数目就是路径长度。 树的路径长度:就是从树根到每一结点的路径长度之和。 考虑带权的结点,结点的 阅读全文
posted @ 2019-01-16 21:53 DWVictor 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 一.概述 加权无向图是一种在无向图的基础上,为每条边关联一个权值或是成本的图模型.应用可以有很多:例如在一幅航空图中,边表示导线,权值则表示导线的长度或是成本等. 图的生成树是它的一颗含有其所有顶点的无环连通子图,一幅加权图的最小生成树(MST)是它的一颗权值(树中的所有边的权值之和)最小的生成树. 阅读全文
posted @ 2019-01-16 21:49 DWVictor 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 一下两种方法掌握一种即可 一.前向星建图 /** /*向前星 /*@Victor */ const int MX = 1e5 +5; const int ME = 2e5 + 5; struct edge{ int v ,w ; int nxt; edge(){} edge(int _v, int 阅读全文
posted @ 2019-01-16 21:47 DWVictor 阅读(331) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-01-16 21:31 DWVictor 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1、前向星 前向星是以存储边的方式来存储图,先将边读入并存储在连续的数组中,然后按照边的起点进行排序,这样数组中起点相等的边就能够在数组中进行连续访问了。它的优点是实现简单,容易理解,缺点是需要在所有边都读入完毕的情况下对所有边进行一次排序,带来了时间开销,实用性也较差,只适合离线算法。图一-2-4 阅读全文
posted @ 2019-01-16 21:29 DWVictor 阅读(7211) 评论(0) 推荐(9) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-01-16 21:25 DWVictor 阅读(79) 评论(0) 推荐(6) 编辑
摘要: 原理: 任意多边形的面积可由任意一点与多边形上依次两点连线构成的三角形矢量面积求和得出。 分析: 由于给出的点是相对于我们的坐标原点的坐标,每个点实际上我们可以当作一个顶点相对于原点的向量,如下图所示: P(0,0)对应的顶点向量分别为:A(x0,y0),B(x1,y1),…,G(x6,y6) 另外 阅读全文
posted @ 2019-01-16 18:33 DWVictor 阅读(1068) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/338/L 题解: 当n==1时,0-9填上的话,对4取余,分别是余数为0的3个,1的3个,2的2个,3的2个; 当n==2时,因为一个数的时候有3323的余数个数分布,如果第2个填上数可以使原来的余数变成0或者保持零,那么可以 阅读全文
posted @ 2019-01-16 18:28 DWVictor 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 一、基础知识(1)矩阵乘法 https://blog.csdn.net/weixin_43272781/article/details/82899737 简单的说矩阵就是二维数组,数存在里面,矩阵乘法的规则:A*B=C 其中c[i][j]为A的第i行与B的第j列对应乘积的和,即: 代码: 另一种写法 阅读全文
posted @ 2019-01-16 18:26 DWVictor 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 定义快速幂顾名思义,就是快速算某个数的多少次幂。 其时间复杂度为 O(log2N), 与朴素的O(N)相比效率有了极大的提高。 以下以求a的b次方来介绍 原理把b转换成2进制数 该2进制数第i位的权为(2^(i-1)) 例如 a^11=a^(2^0+2^1+2^3) 11的二进制是1 0 1 1 1 阅读全文
posted @ 2019-01-16 18:22 DWVictor 阅读(576) 评论(0) 推荐(1) 编辑
摘要: 一、必胜点和必败点的概念 P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。 N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。 必胜点和必败点的性质: 1、所有终结点是 必败点 P 。(我们以此为基本前提进行推理,换句话说,我们以此为假设) 2、从任何必胜点N 操作,至 阅读全文
posted @ 2019-01-16 18:15 DWVictor 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 一,并查集的介绍 并查集(Union/Find)从名字可以看出,主要涉及两种基本操作:合并和查找。这说明,初始时并查集中的元素是不相交的,经过一系列的基本操作(Union),最终合并成一个大的集合。 而在某次合并之后,有一种合理的需求:某两个元素是否已经处在同一个集合中了?因此就需要Find操作。 阅读全文
posted @ 2019-01-16 18:13 DWVictor 阅读(1511) 评论(0) 推荐(0) 编辑