算法
deqingguo
来自福州大学,黑黑的,想要在IT行业留有一席之地,望多多指教~
展开
-
连连看 1175 HDU(广度搜索)
问题描述:http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路很清晰,但是因为实现的方式和代码的问题,纠结了好久,最后请牛人(YWJ)帮忙,终于好了。 采用广度搜索,队列实现,先入先出,实现的时候,关键是对走过的路径的标识,防止陷入死循环。用数组has[][]标记一个点最小的拐角数。还有设立方向数组op[][],只要一个for就解决了四个方原创 2011-10-26 15:19:37 · 740 阅读 · 0 评论 -
(转载)AC自动机算法详解
首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。转载 2011-10-26 15:27:50 · 532 阅读 · 0 评论 -
(转载)全排列next_permutation
了解C++的童鞋都知道algorithm里面有个next_permutation可以求下一个排列数,通过《STL 源码剖析》(或者自己读代码)可以知道其实现,比如: abcd next_permutation -> abdc 那么,为什么abcd的下一个是abdc而不是acbd呢? 说简单一点,用 1,2,3,4 代替 a,b,c,d,可以得到: 原排列转载 2011-10-26 15:22:21 · 539 阅读 · 0 评论 -
HDU题目分类
1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009转载 2011-10-26 15:20:20 · 567 阅读 · 0 评论 -
敌兵布阵 1166 HDU 线段树
花了一个下午理解了线段树的算法,然后开始做HDU上的1166题。 先说说对于线段树的一个理解: 比如要在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端点依次输入告诉你,然后有m个(多次)询问,每个询问输入一个点,要求这个点在多少条线段上出现过; 最暴力的解法当然就是读一个点,就把所有线段比一下,看看在不在线段中;但是每次询问都要把n条线段原创 2011-10-26 15:18:32 · 869 阅读 · 0 评论 -
Courses HDU1083(二分图的匹配)
题目http://acm.hdu.edu.cn/showproblem.php?pid=1083 描述:有p门的课,每门课都有若干学生,现在要为每个课程分配一名课代表,每个学生只能担任一门课的课代表,如果每个课都能找到课代表,则输出"YES",否则"NO"。 思想:采用二分图的最大匹配,对课程—学生关系建立一个图,进行二分图的最大匹配,如果最大匹配数==课程数,说明能够满足要求,否则不原创 2011-10-26 15:21:38 · 3323 阅读 · 0 评论 -
分而治之
★ 问题描述: 小 D 最近很无聊 , 于是他拿来 N 个大小不一的球 , 然后他将球摆成一条直线 , 用 A1 …… An 表示球的体积大小。然后小 D 发现会有 Ai 和 Aj 之间的所有小球 Ak(i ★ 实验任务: 给出 Ai …… .Aj 的序列,要你找到满足对于 (i ★ 数据输入 : 输入数据第一行包含一个整数 N 表示有 N ★ 结果输出: 输出满足条件的 i原创 2011-11-02 15:59:28 · 689 阅读 · 0 评论