10 2017 档案

摘要:题意 : 给出 P 个顶点以及 Q 条有向边,求第一个点到其他各点距离之和+其他各点到第一个点的距离之和的最小值 分析 : 不难看出 min( 第一个点到其他各点距离之和+其他各点到第一个点的距离之和 ) = min( 第一个点到其他各点距离之和) + min( 其他各点到第一个点的距离之和 ),前 阅读全文
posted @ 2017-10-25 20:47 qwerity 阅读(172) 评论(0) 推荐(0)
摘要:题意 : 给出二维平面上的两个点代表起点以及终点,接下来给出若干条地铁线路,除了在地铁线路上行进的速度为 40km/h 其余的点到点间都只能用过步行且其速度为 10km/h ,现问你从起点到终点的最短路是多少? 分析 : 这题建完图之后就是裸的最短路了,在建图的时候需要注意地铁的站点之间不能隔点建拥 阅读全文
posted @ 2017-10-25 18:46 qwerity 阅读(140) 评论(0) 推荐(0)
摘要:题意 : 给出 N 头奶牛在比赛的结果,问你最多的能根据给出结果确定其名次的奶牛头数。结果给出的形式为 A B 代表在比赛当中 A 战胜了 B 分析 : 对于一头奶牛来说,如果我们能确定其他 N - 1 头奶牛和它的关系,那么它的名次就确定了。将奶牛之间的胜负关系建图,如果给出 A B 那么我们建一 阅读全文
posted @ 2017-10-24 20:52 qwerity 阅读(134) 评论(0) 推荐(0)
摘要:题意 : 给出 N 个点,各个点之间的路径长度用给出的下三角矩阵表示,上上角矩阵和下三角矩阵是一样的,主对角线的元素都是 0 代表自己到达自己不用花费,现在问你从 1 到 N 的最短路,矩阵的 x 代表点间无法互相到达 分析 : 最短路模板…… 就是在输入的时候需要将字符串变成整数、自己写也可以,也 阅读全文
posted @ 2017-10-24 20:39 qwerity 阅读(166) 评论(0) 推荐(0)
摘要:题意 : 给出 N 个点,以及 M 条双向路,每一条路的权值代表你在这条路上到达终点需要那么时间,接下来给出 W 个虫洞,虫洞给出的形式为 A B C 代表能将你从 A 送到 B 点,并且回到 C 个时间点之前,也就是时光倒流了 C 个时间并且此时你在 B 点,现在问你是否能够在图上的这些点中走,使 阅读全文
posted @ 2017-10-24 20:32 qwerity 阅读(173) 评论(0) 推荐(0)
摘要:题意 : 找出 1 到 N 点的所有路径当中拥有最大承载量的一条路,输出这个最大承载量!而每一条路的最大承载量由拥有最大承载量的那一条边决定 分析 : 与 POJ 2253 相似且求的东西正好相反,属于求从一个指定起点到终点的所有路径当中拥有最大or最小的边是什么。只要改变一下 Dijkstra 中 阅读全文
posted @ 2017-10-24 20:15 qwerity 阅读(176) 评论(0) 推荐(0)
摘要:题意 : 给出二维平面上 N 个点,前两个点为起点和终点,问你从起点到终点的所有路径中拥有最短两点间距是多少。 分析 : ① 考虑最小生成树中 Kruskal 算法,在建树的过程中贪心的从最小的边一个个添加,每添加一条边就用用并查集判断起点和终点是否已经连接起来,如果连接起来了,那么答案就是这条边, 阅读全文
posted @ 2017-10-21 15:33 qwerity 阅读(175) 评论(0) 推荐(0)
摘要:算法原理参考链接 ==> UESTC算法讲堂——最小生成树 关于两种算法的复杂度分析 ==> http://blog.csdn.net/haskei/article/details/53132681 故稀疏图用 Kruskal、稠密图用 Prime、空间足够情况下都用 Prime + Heap 优化 阅读全文
posted @ 2017-10-20 23:32 qwerity 阅读(554) 评论(0) 推荐(0)
摘要:并查集是一种优秀的数据结构、最基本的其能够做快速判断两个元素是否同属一个集合、根据这个特点其能够做的事情就非常多了!举个例子就是能够判断无向图的连通性、优化链式查找、帮助构建最小生成树等等。并查集能存储的元素加上向量后还能存储一系列的关系,解决一些问题矛盾判断问题,总之并查集好理解又好写,是必备的技 阅读全文
posted @ 2017-10-20 22:59 qwerity 阅读(340) 评论(0) 推荐(0)
摘要:Floyd算法适用于求解全源最短路、也就是能够求解任意两点间的最短路径并且是适用于含有负权边的图,但是含有负环则不行了!空间复杂度为O(n2)、时间复杂度为O(n3)。其具体的原理在百度能够找到很多,下面只说说我的理解,首先关键代码如下 即枚举所有的点去作为中转点去松弛 i 和 j ,那考虑这样的一 阅读全文
posted @ 2017-10-20 20:06 qwerity 阅读(417) 评论(0) 推荐(0)
摘要:Bellman-ford 算法适用于含有负权边的最短路求解,复杂度是O( VE ),其原理是依次对每条边进行松弛操作,重复这个操作E-1次后则一定得到最短路,如果还能继续松弛,则有负环。这是因为最长的没有环路的路,也只不过是V个点E-1条边构成的,所以松弛E-1次一定能得到最短路。因此这个算法相比 阅读全文
posted @ 2017-10-18 23:35 qwerity 阅读(278) 评论(0) 推荐(0)
摘要:Dijkstra算法适合求不包含负权路的最短路径,通过点增广、在稠密图中使用优化过的版本速度非常可观。本篇不介绍算法原理、只给出模板,这里给出三种模板,其中最实用的是加上了堆优化的版本 算法原理 or 学习参考链接 : 点我 、不要点它点我!、为何不适用于带负权边图 ( Dijkstra 动态演示 阅读全文
posted @ 2017-10-18 16:54 qwerity 阅读(477) 评论(0) 推荐(0)
摘要:在做图有关的题目,在一些情况下邻接矩阵耗费空间较大、动态开辟的邻接表又耗时耗内存,这时候你可能需要一个静态邻接表! 静态邻接表在各种图的算法当中也是有一席之地的,比如利用堆优化的Dij算法求最短路、SPFA等等 下面给出我的静态邻接表模板 阅读全文
posted @ 2017-10-17 13:18 qwerity 阅读(567) 评论(0) 推荐(1)
摘要:题意 : 给出编号从1 ~ n 的 n 个平面直角坐标系上的点,求从给出的第一个点出发到达最后一个点的最短路径,其中有两种限制,其一就是只能从编号小的点到达编号大的点,再者不能走接下来给出的 m 个限制路径,也就是其中有些路线无法走。 分析 : 把问题抽象一下就是用编号 1 ~ n 构造一个字符串, 阅读全文
posted @ 2017-10-14 16:24 qwerity 阅读(197) 评论(0) 推荐(0)
摘要:题意 : 给出一个 n 行、m 列的方格图,现从图左上角(0, 0) 到右下角的 (n, m)走出一个字符串(规定只能往下或者往右走),向右走代表' R ' 向下走则是代表 ' D ' 最后从左上角到右下角,不同的路线会走出不同的字符串,问你这些不同的字符串有多少个是包含了接下来给定的两个子串。 分 阅读全文
posted @ 2017-10-11 23:16 qwerity 阅读(162) 评论(0) 推荐(0)
摘要:题意 : 给出 n 个模式串,最后给出一个主串,问你主串打乱重组的情况下,最多能够包含多少个模式串。 分析 : 如果你做过类似 Trie图 || AC自动机 + DP 类似的题目的话,那么这道题相对之前的对于主串的“构造”过程加上了一个限制,那就是字符的元素的有限制的,那么DP的状态就不能用长度来表 阅读全文
posted @ 2017-10-11 22:57 qwerity 阅读(168) 评论(0) 推荐(0)
摘要:题意 : 给出 n 个病毒串,最后再给出一个主串,问你最少改变主串中的多少个单词才能使得主串中不包含任何一个病毒串 分析 : 做多了AC自动机的题,就会发现这些题有些都是很套路的题目。在构建 Trie 图的时候给病毒串末尾打上标记,最后定义DP[i][j] = 长度为 i 的串在 j 这个状态节点最 阅读全文
posted @ 2017-10-11 22:23 qwerity 阅读(216) 评论(0) 推荐(0)
摘要:题意 : 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1e9)。但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让 阅读全文
posted @ 2017-10-10 22:38 qwerity 阅读(234) 评论(0) 推荐(0)
摘要:题意 : 给出 m 个单词,每一个单词有一个权重,如果一个字符串包含了这些单词,那么意味着这个字符串拥有了其权重,问你构成长度为 n 且权重最大的字符串是什么 ( 若有权重相同的,则输出最短且字典序最小的 ) 分析 : 如果你做过 POJ 2778 或者 HDU 2243 以及诸如此类的题目,那么这 阅读全文
posted @ 2017-10-07 21:12 qwerity 阅读(191) 评论(0) 推荐(0)
摘要:题意 : 输入n、m、k意思就是给你 m 个模式串,问你构建长度为 n 至少包含 k 个模式串的方案有多少种 分析 : ( 以下题解大多都是在和 POJ 2778 && POJ 1625 && HDU 2243 进行类比,如果没做过的话.......可能看不懂 ) 这道题如果去对比之前做过的 POJ 阅读全文
posted @ 2017-10-06 21:35 qwerity 阅读(182) 评论(0) 推荐(0)
摘要:题意 : 给出 n 个单词组成的字符集 以及 p 个非法串,问你用字符集里面的单词构造长度为 m 的单词的方案数有多少种? 分析 : 与 POJ 2778 非常相似的一道题目,如果没有做过就尝试去了解一下,再回过头来看这道题就轻松很多了,是一类题型。先构造出 Trie 图方便进行状态转移,这与在 P 阅读全文
posted @ 2017-10-06 14:26 qwerity 阅读(143) 评论(0) 推荐(0)
摘要:题意 : 长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这里就不考虑单词是否有实际意义。 比如一共有2个词根 aa 和 ab ,则可能存在104个长度不超过3的单词,分别为(2个) aa,ab, (26个)aaa,aab,aac...aaz, (26个)aba,abb 阅读全文
posted @ 2017-10-05 19:24 qwerity 阅读(216) 评论(0) 推荐(0)
摘要:题意 : 给出一些病毒串,问你由ATGC构成的长度为 n 且不包含这些病毒串的个数有多少个 分析 : 这题搞了我真特么久啊,首先你需要知道的前置技能包括 AC自动机、构建Trie图、矩阵快速幂,其中矩阵快速幂和AC自动机可能都熟悉,但是这题为什么和矩阵有关系?Trie图是什么呢?好像只听说过Trie 阅读全文
posted @ 2017-10-04 17:24 qwerity 阅读(236) 评论(0) 推荐(0)
摘要:模板 #include<queue> #include<stdio.h> #include<string.h> using namespace std; const int Max_Tot = 5e5 + 10; const int Max_Len = 1e6 + 10; const int Let 阅读全文
posted @ 2017-10-01 20:29 qwerity 阅读(215) 评论(0) 推荐(0)