ACM(数据结构)
文章平均质量分 77
threedonkey
这个作者很懒,什么都没留下…
展开
-
线段数应用(poj2828)
线段数应用 题目: Buy Tickets 题目大意:n个人排队等待,第i个人到来会有两个信息(Pos[i]∈ [0, i − 1] , val[i])表明这 个人会插队到pos[i]的后边,这个人的值是val[i]; 依次给出n个人的到来信息,输出最终的 队列从头到尾每个人的值。 思路:第i个人插入的位置是pos[i]那就说明这个人前面要有pos[i]个空位置重后向前依次插入到线段数原创 2012-03-05 20:23:50 · 821 阅读 · 0 评论 -
AC自动机+矩阵+二分
自动机+矩阵快速幂+二分 题目:考研路茫茫——单词情结 题目大意:给出n个串,求至少包含一个串的长度不操过L的串的个数 思路:首先就是思路转化,自动机一般求的是不包含危险串的字串的个数,因此我们就反过来求,先求所有可能的串26+26^2+26^3…+26^L,然后不可能包含的串的个数,即长度为1,2,。。。,L的不包含给定的n个串的个数。然后用全部的减去这个,就是我们要的答案。 我们知道x原创 2012-03-22 17:21:01 · 940 阅读 · 0 评论 -
线段树区间修改
线段树区间修改 题目:http://poj.org/problem?id=1436 题目大意: 给出n根竖直的线段, 如果三条线段可两两水平可见,那么这三条线段被叫做一个三角形,求这样的三角形的个数。 思路: 用线段树维护区间被那个线段盖住是很好想到的,但是如何判断三条线段两两可见就不容易了,数据范围是8000,理论上O(n^3)是不可能的,但是没想到还真是这么干,枚举 三条边判断是否原创 2012-03-19 18:11:07 · 3164 阅读 · 0 评论 -
随机伪快排法 求第k大数
分治法求第K大数 利用快排的思想求一个数列的第k大数, 高二开始写快排,但是一直没有非常清晰的理解,知道是分治, 但不理解细节。 今天借助写这个的机会,同时阅读了《编程珠玑》里的四种快排写法,才感觉更加清晰了。 这次写的快排才真正有了一个数,其左边的数都比他小, 右边的都比他大。 /****************************************************原创 2012-03-15 00:50:27 · 1310 阅读 · 0 评论 -
STL vector用法介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能的,能够转载 2012-03-09 20:29:33 · 372 阅读 · 0 评论 -
AC自动机 初步总结
AC自动机总结 AC自动机在解决字符串匹配,尤其是多串处理的问题上, 表现出了强大的能力。 AC自动机的建立是在trie树的基础之上,我们为每个节点i都找到一个节点j,节点j满足从根到节点j形成的字符串是从根到节点i形成的字符串的最长后缀。这样,如果我们从树中行走到i时发现走不下去了,我们就可以跳到j处,继续走,这是就相当于我们在根处走了几个圈后面从根处走到了j节点(因为从根到j的串在从根到i原创 2012-03-26 14:40:28 · 697 阅读 · 0 评论 -
自动机与旅行商问题
hdu3247自动机+TSP 题目:http://acm.hdu.edu.cn/showproblem.php?pid=3247 题目大意:给定n个串(n ) 和 m个病毒串(总字符数50000),求一个新串,包含n个串全部但不能包含m中的任意一个,串可重叠出现。输出最短长度。 思路:建立一个自动机是肯定的,不能出现的标记-1。一开始想了一个错误的算法,类似SPFA,定义原创 2012-03-26 14:02:14 · 798 阅读 · 0 评论 -
线段树解约瑟夫
线段树解约瑟夫 题目 :Who Gets the Most Candies? 题目大意 :n个人的环, 从第k个人开始依次出环,每个人头上都有个标记ne[i],指明下一次是他左或右的第ne[i]个人出环。(正为顺时针,负为逆时针,题目在这里描述的好蛋疼,直接导致wa2次)。 思路 :从线段数中删除,从线段数中查找,poj2882也利用了线段树类似的功能。 细节的地方就是如何将从第i个地方数原创 2012-03-06 16:47:27 · 889 阅读 · 0 评论 -
线段树解集合运算
线段树区间操作 ——集合运算 题目:Help with Intervals 题目大意:给出集合的几个运算,并,交,亦或,差。集合初始为空,给出操作序列,输出最终区间。 思路:集合是有区间给出的,所以用线段树。对应操作: U [a,b] 将 区间[a,b]置为1原创 2012-03-08 10:36:58 · 869 阅读 · 0 评论 -
搜索介绍
这周是搜索的题目,写一点对搜索算法的介绍,希望能帮助大家。 关键字【深搜】【IDS】【广搜】【双向广搜】【IDS】【A*】【IDA*】 背景题目: 1:http://acm.hdu.edu.cn/showproblem.php?pid=1242(深搜或广搜) 2 : http://poj.org/problem?id=1011(剪枝) 3:http://poj.org/problem原创 2013-11-13 23:36:48 · 1018 阅读 · 0 评论