自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 UVA 1449 Dominating Patterns(AC自动机)

UVA 1449 Dominating Patterns(AC自动机)http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36265题意:        给你n个单词,还有一个长文本s,现在要你输出在文本s中出现次数最多的单词。分析:        直接建立AC自动机,并且val值是当前插入单词的编号。建立AC

2017-08-31 20:41:12 275

原创 扩展KMP总结(模板题hdu2594)

参考介绍:点击打开链接    点击打开链接模板题:hdu2594 (扩展KMP)http://acm.hdu.edu.cn/showproblem.php?pid=2594题目大意:给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀思路:将S1作为模式串 然后在s2中寻找,求出s1的next数组,nxt[i]:x[i...m-1]与x[0..

2017-08-31 19:34:55 945

原创 poj2185 Milking Grid(两次KMP)

题目链接:http://poj.org/problem?id=2185题目大意:在字符矩阵中找出一个最小子矩阵,使其多次复制所得的矩阵包含原矩阵。思路:做两次KMP,分别为一次行一次列。 行和列分别是len-next[len]; 最后两个结果相乘就可以了#include#include#include#includeusing namespace std

2017-08-30 22:04:06 194

转载 KMP算法

假设主串:S: S[1] S[2] S[3] ……S[n]模式串:T: T[1] T[2] T[3]…..T[m]现在我们假设主串第i 个字符与模式串的第j(j主串:   S[1]...S[i-j+1]...S[i-1]S[i]...                    ||(匹配)   ||    ≠模式串:            T[1]...  T[j-1] T[j]

2017-08-30 20:34:51 154

原创 POJ 2503 Babelfish(字典树Trie)

题目链接:点击打开链接题目大意:        给你一个标准英语单词到方言单词的映射表,然后再给你一系列的方言单词,要你输出每个方言单词对应的英语单词。思路:        本题直接用map映射查找很可能会超时,所以用字典树Trie来处理。字典树节点v=0表示非单词节点,如果v=1表示单词节点,并且字典树节点还有一个string属性,用来保存对应的每个方言单词对于的英语单词

2017-08-30 17:50:02 244

原创 POJ 2001 Shortest Prefixes(字典树Trie)

POJ 2001 Shortest Prefixes(字典树Trie)http://poj.org/problem?id=2001题意:        给你多个单词组成的词典,现在要你输出每个单词对应的前缀,使得每个前缀唯一。如果不存在唯一前缀就直接输出单词本身。比如字典里面有car 和caraaab 两个单词,那么对于caraaab就输出cara,对于car就输出car。分析:

2017-08-30 17:13:47 171

转载 字典树Trie

字典树Trie        字典树又叫单词查找树(Trie)或前缀树(可见刘汝佳《算法竞赛入门经典训练指南》P208)。顾名思义它是与单词的前缀相关的。给你一个单词和一个字典构成的字典树,你可以在O(m)(m为所给单词的长度)时间内判断出该单词是否属于字典。但是如果你用KMP或其他暴力方法,你至少需要把字典中所有单词都遍历一遍。下图是一个具有单词abc,abcd,b,bcd,efg,hi

2017-08-30 00:23:54 294

原创 HDU 1247 Hat’s Words(字典树Trie)

HDU 1247 Hat’s Words(字典树Trie)http://acm.hdu.edu.cn/showproblem.php?pid=1247题意:        给你多个单词组成的字典,要你从中找出这样的单词,该单词正好是字典中另外两个单词(可相同)首尾相连构成的。按字典序输出所有要找的单词。分析:        首先用所有单词建立字典树,然后遍历每个单词。将当前单词

2017-08-30 00:20:33 178

原创 HDU 1671 Phone List(字典树Trie)

HDU 1671 Phone List(字典树Trie)http://acm.hdu.edu.cn/showproblem.php?pid=1671题意:        给你多个由0-9构成的字符串集合,问你这个集合中是否有一个字符串是其他字符串的前缀?分析:       直接构造字典树,然后一一插入每个字符串,判断是否有比当前字符串短或长的同一路径的字符串已经在树中了. 

2017-08-30 00:12:56 197

原创 UVA 1401 Remember the Word(DP+字典树Trie)

UVA 1401 Remember the Word(DP+字典树Trie)https://vjudge.net/problem/UVA-1401题意:        给你一个由N个单词组成的词典,和一个字符串S。问你S由N中的单词组成的方法有多少种?字典中的单词可以重复使用但是不可重叠。分析:        我们令d[i]=x表示S串的后缀[i,L-1]串有多少种构成方式

2017-08-29 23:19:43 185

原创 hdu 5952 Counting Cliques(dfs优化) 2016ACM/ICPC亚洲区沈阳站

题目链接;点击打开链接题目大意:给一n个点m条边的图,找一个有s个顶点的完全子图。什么是完全子图?即子图中每个点到其他点都有一条边相连思路:对于每个s点完全子图,如果i点在子图中,那么就枚举与i有边的其他点,每加入一个点,就判断一下是否和其他已加入的点有边,如果是就可以加入,否则不能加。  最后再优化一下:防止重复计算,对于搜过点从图中删去。这样就不用标记判重了

2017-08-28 21:22:52 355

原创 HDU 5950 Recursive sequence(构造矩阵+矩阵幂)——2016ACM/ICPC亚洲区沈阳站

题目链接:点击打开链接题目大意:求 f(n) = f(n−1)+2*f(n−2)+n4,其中f(1)=a,f(2)=b思路:首先一看这个题目,很容易想到构造矩阵:那么我们现在来分析一下怎么构造这个矩阵,那么 (n+1)4 = n4+4n3+6n2+4n+1 所以光 (n+1)4 这个矩阵就能构造出 5∗5 的一个矩阵来, 然后 f(n) = f(n−1)+2∗f

2017-08-28 19:53:51 368

原创 Gym - 101190A Abbreviation(string字符串 模拟)

题目链接:点击打开链接题目大意:就是给你几行字符串,将某些连续的单词缩写,连续缩写的的单词有以下几个要求:1.单词需要第一位大写,后几位均为小写。2.需要至少两个符合条件的单词才可以缩写3.两个符合的单词之间只能隔一个空格。如果隔了两个及两个以上空格或者标点符号的话,均不满足.题目思路:此题强烈建议用string来做,因为string可以一位一位的判断,直接相加。用ch

2017-08-28 11:53:15 673

原创 Gym - 100783C Golf Bot(FFT多项式相乘)

题目链接:点击打开链接题目大意:给出n个数a1,a2,....an,和m个数b1,b2,...bn,问b数组中有多少个数可以由a数组中一个或两个的和组成思路:构造两个相同的多项式,指数分别为a1,a2...an,系数表示存不存在(1或0),然后用FFT相乘,得到结果多项式,系数大于等于1的表示能够得到该项。指数表示某两个ai+aj(1所以将这些系数大于等于1的指数记录下来,这些都是

2017-08-27 11:01:32 651

转载 [uoj 34 多项式乘法] FFT&NTT 模板

1. 题目链接[uoj 34 多项式乘法]2. 题意描述给你两个多项式,请输出乘起来后的多项式。 第一行两个整数 n 和 m,分别表示两个多项式的次数。第二行 n+1个整数,分别表示第一个多项式的0 到 n 次项前的系数。 第三行 m+1 个整数,分别表示第一个多项式的 0 到 m 次项前的系数。3. 解题思路模板测试题。

2017-08-27 10:51:43 306

原创 Gym - 100783F City Park(并查集的运用)

题目链接:点击打开链接题目大意:给出一些矩阵,如果矩阵之间有接触算作一个连通分量,问最大的连通分量的面积为多少?思路:既然接触即算为一个连通分量,那么我们可以分别讨论他的横边接触和竖边接触。将横边和竖边分别存储在不同的结构体数组中,然后对数组进行排序,将互相接触的边对应的矩阵放在统一并查集中。最后统计下所有并查集的面积大小,输出最大的一个即可。#include#include

2017-08-27 10:12:28 322

原创 B - Flowery Trails Gym - 100783B (最短路 Dijkstra优先对列优化)

题目链接:点击打开链接题目大意:计算 1 和 n 两点间最短路的路径和的两倍,(即可能有多条最短路,所有最短路的路径和,一条边只能计算一次)思路:最短路 Dijkstra优先对列优化1   计算两个最短路,从0到其他点和从n-1到其他店2   枚举没一条边到两端的距离加上本身长度,判断是等于最短路长度3   若是的,那么这条边可以当做最短路的一条边#includ

2017-08-26 22:20:42 333

原创 POJ 3268 Silver Cow Party(Dijkstra)

POJ 3268 Silver Cow Party(Dijkstra)http://poj.org/problem?id=3268题意:        有N头牛要去参加牛X那里的聚会,现在除了X牛外,其他N-1头牛都要走到X牛那里去.给你M条有向边,现在问你任意一头牛从自己的位置走到X牛那,然后再走回来(来回都选择最短路径走)的话,需要的总时间的最大值是多少?即从所有N-1头牛中找那个

2017-08-26 21:41:12 196

转载 Dijkstra单源最短路径

Dijkstra单源最短路径        给定一个带权有向图G=(V,E) ,其中每条边的权是一个非负实数。另外,还给定 V 中的一个顶点,称为源。现在我们要计算从源到所有其他各顶点的最短路径长度。这里的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。        下面给出两个计算单源最短路径的模板。Dijkstra_简化版:时间复杂度O(n^2),不可处理重边图

2017-08-26 21:11:38 335

原创 codeforces 448C C. Painting Fence(分治+dp)

题目链接:点击打开链接题目大意:给出n个杆子,每个杆子有一个长度,每次可以刷一行或一列,问最少刷多少次可以将整个墙刷成黄色。思路:首先我们能够想到,如果横着刷,为了得到最优解,当前刷的位置的下面也必须横着刷,然后对于每种情况都可以通过n次竖着刷得到整个黄色的墙。所以我们采取分治的策略进行动态规划,也就是对于每个状态划分为两种情况讨论,如果要刷横向的话,最矮要刷到最矮的柱子的高度才可

2017-08-25 23:19:14 320

原创 HDU 3749 Financial Crisis(点-双连通分量)

HDU 3749 Financial Crisis(点-双连通分量)http://acm.hdu.edu.cn/showproblem.php?pid=3749题意:        给你一个(保证输入无重边,无自环)无向图,然后有下面Q条询问,每条询问为:问你u点与v点之间有几条(除了首尾两点外,其他点不重复)的路径.如果有0条或1条输出0或1,如果有2条以上,输出”two or mo

2017-08-25 17:57:22 215

原创 POJ 3177 Redundant Paths(边双连通分量+缩点)

POJ 3177 Redundant Paths(边双连通分量+缩点)http://poj.org/problem?id=3177题意:给你一个无向连通图,问你至少需要添加几条边能使得该图是一个边双连通图?分析:本题与POJ3352基本一样:http://blog.csdn.net/qq_36782366/article/details/77580892       首先我

2017-08-25 16:53:24 192

原创 POJ 3352 Road Construction(边双连通分量)

POJ 3352 Road Construction(边双连通分量)http://poj.org/problem?id=3352题意:        给你一个连通的无向图,现在问你最少在该图中添加几条边,能使得该图变成边双连通图?分析:        解题思路参考以下博客:http://blog.csdn.net/lyy289065406/article/details/6

2017-08-25 16:48:41 212

转载 无向图的双连通分量

无向图的双连通分量        点-双连通图:一个连通的无向图内部没有割点,那么该图是点-双连通图。        注意:孤立点,以及两点一边这两种图都是点-双连通的。因为它们都是内部无割点。        边-双连通图:一个连通的无向图内部没有桥,那么该图就是边-双连通的。        注意:孤立点是边-双连通的,但是两点一边不是边-双连通的。        由上面定义可

2017-08-25 16:04:23 282

原创 HDU 4738 Caocao's Bridges(重边无向图求桥)

HDU 4738 Caocao's Bridges(重边无向图求桥)http://acm.hdu.edu.cn/showproblem.php?pid=4738题意:       现在有个(可重边)无向图,无向图的每条边上都有一定数目的守卫,你现在想派人去炸掉这个图的一条边,是的该图不连通。但是你只能炸1条边且如果该边守卫为x人,那么你至少要派x个人过去。所以现在问你最少需要派多少人出

2017-08-24 22:31:42 255

原创 HDU 3849 By Recognizing…(求无向图的桥数目)

HDU 3849 By Recognizing…(求无向图的桥数目)http://acm.hdu.edu.cn/showproblem.php?pid=3849题意:      给你一个无向图(可能不连通,但是无自环,无重边),如果本图不连通,那么直接输出0。否则要你输出图中的每条桥边,要求按输入边的顺序输出。分析:       由于图可能不连通,所以我们只用tarjan(1,

2017-08-24 22:09:10 268

原创 HDU 4587 TWO NODES(无向图割点)

HDU 4587 TWO NODES(无向图割点)http://acm.hdu.edu.cn/showproblem.php?pid=4587题意:        给你一个无向图,问你从这个无向图中删除任意两个点之后所能获得的独立连通分量个数的最大值.分析:        首先我们从0到n-1枚举需要删除的第一个点u,然后在这个G-u的新图中,我们剩下要删除的第二个点应该尽量为

2017-08-24 21:31:21 164

原创 POJ 1523 SPF(割点所割连通分量数)

POJ 1523 SPF(割点所割连通分量数)http://poj.org/problem?id=1523题意:        给你一个无向图,问你该图中有多少割点.且每个割点能把该图分为几个连通分量分析:        本题与POJ 2117很类似,也是用cut[i]数组来计数i节点所能割的儿子数.(不过注意:对于根节点,如果它不是割点,那么cut[i]==0而不是-1了),

2017-08-24 20:36:09 260

原创 POJ 2117 Electricity(无向图割点)

POJ 2117 Electricity(无向图割点)http://poj.org/problem?id=2117题意:        给你一个无向图(不一定连通),现在问你从该图中删除任意一个顶点之后,该无向图所具有的连通分量数目最大是多少?分析:        本题与前一题不一样,前一题是要你判定哪些点是割点。但是这题需要你求出割点到底能割出几个连通分量。本题的无向图可能不

2017-08-24 20:03:04 299

原创 POJ 1144 Network(简单求无向图割顶数)

POJ 1144 Network(简单求无向图割顶数)http://poj.org/problem?id=1144题意:        给你一个无向图,问你这个图中有多少个割点.不过该题的输入格式说的比较难懂.这里解释一下:每个实例第一行是N,表示节点数.接下来可能有最多N行描述边信息的.        其中这N行每行都是这样的:每行第一个数表示该行的主顶点u,接着的所有数字表示副

2017-08-24 17:43:36 235

转载 无向图求割顶与桥

无向图求割顶与桥        对于无向图G,如果删除某个点u后,连通分量数目增加,称u为图的关节点或割顶。对于连通图,割顶就是删除之后使图不再连通的点。如果删除边(u,v)一条边,就可以让连通图变成不连通的,那么边(u,v)是桥。        具体的概念和定义比较多,在刘汝佳训练指南>>P312-314页都有详细的介绍。        下面来写求无向图割顶和桥的DFS函数.我们令p

2017-08-24 15:03:24 443

原创 HDU 3435 A new Graph Game(二分图最优匹配:有向环覆盖)

文为博主原创文章,未经博主允许不得转载。 HDU 3435 A new Graph Game(二分图最优匹配:有向环覆盖)http://acm.hdu.edu.cn/showproblem.php?pid=3435题意:       给你一个N个节点M条边的无向图,要你求该图有1个或多个不相交有向环(哈密顿回路)构成时,所有这些有向环的最小权值.分析:       要注意,

2017-08-24 00:12:37 193

原创 HDU 1853 Cyclic Tour(二分图最优匹配:有向环覆盖)

HDU 1853 Cyclic Tour(二分图最优匹配:有向环覆盖)http://acm.hdu.edu.cn/showproblem.php?pid=1853题意:       给你一个N个点M条边的带权有向图,现在要你求这样一个值:该有向图中的所有顶点正好被1个或多个不相交的有向环覆盖.这个值就是 所有这些有向环的权值和. 要求该值越小越好.分析:       我

2017-08-24 00:07:18 302

原创 HDU 3315 My Brute(二分图最优匹配:优先用原匹配边)

HDU 3315 My Brute(二分图最优匹配:优先用原匹配边)http://acm.hdu.edu.cn/showproblem.php?pid=3315题意:       有S1到Sn这n个勇士要和X1到Xn这n个勇士决斗,初始时,Si的决斗对象是Xi. 如果Si赢了Xi,那么你将获得Vi分,否则你将获得-Vi分. Si和Xi对决时,Si有初始生命Hi,初始攻击Ai, Xi

2017-08-23 22:32:56 239

原创 HDU 2853 Assignment(二分图最优匹配:优先用原匹配边)

HDU 2853 Assignment(二分图最优匹配:优先用原匹配边)http://acm.hdu.edu.cn/showproblem.php?pid=2853题意:       给定一个二分图,N个点对应M个点,两两之间存在一组关系,每组关系一个权值。题目中了给定了一个匹配方案,现在要求满足这组关系中的最大的匹配权值在原方案上增长了多少?并且还要求出在原匹配方案上改变(最少)多少

2017-08-23 21:49:46 289

原创 HDU 2448 Mining Station on the Sea(Floyd+最优匹配)

HDU 2448 Mining Station on the Sea(Floyd+最优匹配)http://acm.hdu.edu.cn/showproblem.php?pid=2448题意:       给你一个由N个港口和M个海上油田构成的连通图(给出了图中所有的边和权值,即k条无向边连通两个油田,p条有向边连通港口和油田,Notice that once the ship ente

2017-08-23 20:37:43 214

原创 POJ 1548 Robots(DAG最小路径覆盖)

POJ 1548 Robots(DAG最小路径覆盖)http://poj.org/problem?id=1548题意:       给出一个矩阵,派机器人从最左上点到最右下点走,并且每个机器人只能往下走或往右走,在矩阵中的一些格子中有含有一个‘G’,问最少需要多少机器人,才能把所有的G都走到分析:       仔细分析一下,其实本题就是DAG的最小路径覆盖.       对

2017-08-23 17:44:15 256

原创 HDU 4160 Dolls(DAG最小路径覆盖)

HDU 4160 Dolls(DAG最小路径覆盖)http://acm.hdu.edu.cn/showproblem.php?pid=4160题意:       有N个木偶,木偶有3项指标,w,i,h. 如果第i个木偶的3项指标对应小于第j个木偶的3项指标,那么i木偶可以放到j木偶中. 且一个木偶里面只能直接的放一个别的木偶.问你这N个木偶最优嵌套的方案下,最多有几个木偶不能被任何木偶

2017-08-23 15:41:28 201

原创 HDU 3991 Harry Potter and the Present II(Floyd+DAG最小路径覆盖)

HDU 3991 Harry Potter and the Present II(Floyd+DAG最小路径覆盖)http://acm.hdu.edu.cn/showproblem.php?pid=3991题意:       一幅图上有N个点,M条边,边的权值表示通过这条边所需要的时间。有Q个任务,每次任务以Ci,Ti的形式给出Ci表示城市编号,Ti表示任务需要在Ti这个时间点完成.现

2017-08-23 14:15:35 211

原创 POJ 3216 Repairing Company(FLOYD+DAG最小路径覆盖)

POJ 3216 Repairing Company(FLOYD+DAG最小路径覆盖)http://poj.org/problem?id=3216题意:       给出Q的街道和M个任务       然后给出i*j的矩阵..表示第i个地点到第j个地点的距离 其中-1表示不可到达.       然后接下来M行有 p t d 表示 任务在p地点, 开始时间是t, 完成工作花费时间

2017-08-23 12:02:28 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除