2011年6月9日

像程序一样去学习

摘要: 学了好多东西 也写了很多很多程序算起来 我是在初一开始认识这些的 当时学习了Pascal 然后初中三年 又学了一些算法然后就可以写一写简单的程序了 随后就初中毕业进了高中如果说要开始认真学习算法和数据结构 是去年的这个时候吧当时也是出于好奇 因为有很多问题之前的学的东西远远不能解决学习算法 实现程序真的给我带来了不少东西 其中有很多实在是在意料之外的也许将来就离不开写程序了..一般的程序都得有个输入 当然有的程序不需要输入因为这些程序需要干什么 写程序的人早就设定好了 这种设定也可以算是一种输入吧在不断学习新东西的人 好比就是不断地读取输入流的程序对一个好的程序来说 应该能够不断的读取输入流并 阅读全文

posted @ 2011-06-09 16:19 Master_Chivu 阅读(2327) 评论(4) 推荐(4) 编辑

2011年6月4日

再解树形数据结构(二)

摘要: {以前在这里介绍过延迟标记的手法http://www.cnblogs.com/Booble/archive/2010/10/11/1847793.html阅读这本文之前请先阅读上面一段 尤其是对Poj3468的解决线段树作为一种常用的数据结构 通常会被要求支持更复杂的修改因此就产生了延迟标记来保证线段树的复杂度这里通过几个简单应用延迟标记的例子更深入的介绍延迟标记}========================================================一.标记问题引例先看一个例子 HDU3397 这是一个比较水但是比较繁琐的标记题http://acm.hdu.edu.c 阅读全文

posted @ 2011-06-04 19:35 Master_Chivu 阅读(2315) 评论(2) 推荐(1) 编辑

2011年6月3日

再解树形数据结构(一)

摘要: {最近做了很多有意思的数据结构问题在这里小结一下 顺便介绍一下数据结构问题的基本解决方法由于以前零零散散介绍过几部分数据结构所以标题就是 再解数据结构了由于碰到的问题基本都和树形结构脱不了干系这几段文章都是围绕树形数据结构的}=================吐槽的分割线====================在这神奇的世界上有个神奇的地方叫做Online Judge 简称OJ 是ACMER OIER打发寂寞空虚的地方在众多OJ中有两个神奇的OJ: SPOJ和SGUSGU是一个卡内存的地方 很多题目的内存少的可怜而SPOJ是一个卡常数的地方 很多很多理论复杂度很好的程序经常被判定为TLE原因就 阅读全文

posted @ 2011-06-03 14:26 Master_Chivu 阅读(4237) 评论(3) 推荐(0) 编辑

2011年4月3日

[Poj 2187]计算几何之凸包(三) {旋转卡壳初步}

摘要: {上一节介绍了凸包的高效算法和一个最远点对的应用这一段将更好的解决最远点对问题}(若不做特殊说明 下文讨论的问题均是在欧氏空间若不做特殊说明 下文中距离均是指空间中欧氏距离)==============================一.简单枚举算法的不足上一次介绍了一个基本的求平面最远点对的算法即先求点集的凸包 然后枚举凸包上的点来求最远点集这是利用了凸包上的点相比 点集中的点 一般是很少的 平均情况很好 并且我们也能AC这个问题但是这是有局限性的 当凸包上的点达到O(N)的级别时 凸包的优化作用就不存在了不过我们还要考虑到 凸包还起了对凸包上点集排序的作用凸包有很多的优美的性质 我们可以加 阅读全文

posted @ 2011-04-03 22:19 Master_Chivu 阅读(14937) 评论(11) 推荐(13) 编辑

2011年3月10日

[Poj 2187] 计算几何之凸包(二) {更高效的算法}

摘要: {承上一节继续介绍点集的凸包(下文中所有凸包 若不做特殊说明均指点集的凸包)这一节介绍相比更高效的算法}====================================================================一.卷包裹算法(Gift Wrapping Algorithm)的特性前面提到过卷包裹算法的复杂度问题由于卷包裹算法是两重循环实现的 因此很好分析它的复杂度 1 while true do 2 begin 3 k:=0; 4 inc(m); ch[m]:=j; 5 for i:=1 to n do 6 if (i<>j)and((k=0)or 7 阅读全文

posted @ 2011-03-10 21:22 Master_Chivu 阅读(27288) 评论(13) 推荐(12) 编辑

2011年3月4日

[Poj 1459] 网络流(一) {基本概念与算法}

摘要: {凸包的内容还欠整理先来侃侃一个月以前就想写写的网络流本文介绍网络流 网络流的算法 及其应用这些问题没事想想还是很有意思的}==================================================================================一.网络流:流&网络&割1.网络流问题(NetWork Flow Problem):给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow).The network flow pro 阅读全文

posted @ 2011-03-04 13:37 Master_Chivu 阅读(18612) 评论(8) 推荐(10) 编辑

2011年2月28日

[Poj 1113] 计算几何之凸包(一) {卷包裹算法}

摘要: {半个寒假都在写凸包这几篇文章整理一下主要介绍 二维凸包的求解算法以及一个简单的应用}====================================================================一.凸集&凸包(下文中所有的集合 若不作特殊说明 都是指欧氏空间上的集合)凸集(Convex Set):任意两点的连线都在这个集合内的集合就是一个凸集.A set in Euclidean space is convex set if it contains all the line segments connecting any pair of its points 阅读全文

posted @ 2011-02-28 18:52 Master_Chivu 阅读(15171) 评论(8) 推荐(12) 编辑

2011年2月1日

写程序需要做的几件事

摘要: 兔年到啦 大家新年快乐!以下几条摘自http://old.blog.edu.cn/user3/Hailer/archives/2007/1752875.shtml有几句话看了很有同感 灰字标注这些不止是写给在校大学生的 每个写程序的人都应做到4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好.5.C语言与C++语言是两回事.就像大熊猫和小熊猫一样,只是名字很像.6.请先学习专业课《数据结构》《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处.7.对编程有一定的认识后,就可以学习C++了.(是C++而不是VC,这两个也是两码事.C+ 阅读全文

posted @ 2011-02-01 14:21 Master_Chivu 阅读(2385) 评论(3) 推荐(3) 编辑

2011年1月2日

[Pku 2777] 线段树(六) {总结}

摘要: {很久以前就说过线段树的内容要写6篇了没想到跨年了都 现在是总结的时候了这里是以前的5篇}线段树总结关键字二分 将父亲区间均分设为儿子区间 切割 将查询区间切割为Log级别个的树上区间 概括 高效概括每个区间上的状况合并 将不同的区间情况合并起来得到总区间的情况二分来源于线段树的定义了解更多关于线段树的定义和基本性质 请移步这里这是线段树之所以能够达到Log级别的本质原因也是二进制思想的一个应用还记得这一个问题吧Pku 2777 http://poj.org/problem?id=2777我在这里 也就是介绍线段树的第一篇里 把它做为例子不知有没有发现 这个做法的最坏情况是O(Q*L)的这一篇 阅读全文

posted @ 2011-01-02 15:46 Master_Chivu 阅读(1553) 评论(3) 推荐(1) 编辑

2010年12月14日

[字符串统计] 字符串(八) {后缀数组的应用(下)}

摘要: {承上半部分继续讨论后缀数组的应用这一部分难度较大需要对后缀数组有一个综合的了解主要内容是借助Height数组解决问题即Height分析}重贴一下关于Height数组的内容:Height[]纪录了两个相邻排名的后缀的最长公共前缀最基本的一个性质是:任意两个后缀suffix(j)和suffix(k)的最长公共前缀为height[rank[j]+1] height[rank[j]+2] …height[rank[k]]中的最小值根据这个性质 关于字符串的最优化问题我们通常可以运用贪心法或二分答案而关于字符串的统计问题 为了设计出高效的算法我们还需要对这个性质进行更深入的分析提出一个具体问题统计字符 阅读全文

posted @ 2010-12-14 23:51 Master_Chivu 阅读(3474) 评论(2) 推荐(1) 编辑

2010年12月12日

[最优化子串] 字符串(七) {后缀数组的应用(上)}

摘要: {承接上一篇会构造后缀数组之后还需要讨论如何应用它这里分重点分析后缀数组的应用}〇.(写在前面)串的连接一个最为通用的思路就是有几个串就把几个串连接起来一起生成后缀数组如果有对某些串有特殊需要就可以把这些串处理(比如翻转)之后再接上连接处要加入特殊极小字符 比如"$"如果串很多就直接加入-1,-2,-3...一.区间最值(RMQ)在这里我们介绍了Height数组的性质其中一个最基本的性质就是:任意两个后缀suffix(j)和suffix(k)的最长公共前缀为height[rank[j]+1] height[rank[j]+2] height[rank[j]+3]……height[rank[k] 阅读全文

posted @ 2010-12-12 23:01 Master_Chivu 阅读(2439) 评论(0) 推荐(1) 编辑

2010年12月10日

[Pku 2774] 字符串(六) {后缀数组的构造}

摘要: {从这一篇开始介绍后缀数组一个强大的字符串处理工具可以先研读罗穗骞的论文后缀数组——处理字符串的有力工具再行阅读本文 本文仅作参考和补充}字符串的后缀很好理解譬如对于字符串"aabaaaab"后缀有{"b","ab","aab","aaab","aaaab","baaaab","abaaaab","aabaaaab"}后缀数组就是存储后缀的有序数组字符串的大小是这样规定的字符串的比较是逐个相应字符进行比较(比较他们的ASCII码)直到有两个字符不相等为止 ASCII码大的字母所在字符串就大为了处理长度不等的比较方便 我们给字符串末尾添加一个特殊的字符要求它不同于任何一个字符串中的字符这样我们对 阅读全文

posted @ 2010-12-10 23:35 Master_Chivu 阅读(2928) 评论(0) 推荐(2) 编辑

2010年12月9日

[Pku 2778 3208] 字符串(五) {有限状态自动机}

摘要: {本文接着上一篇文章{请先阅读上一篇文章AC自动机上DP和由AC自动机构造DFA的段落}这篇文章着重讨论确定性有限状态自动机在字符串处理方面的应用}确定性有限状态自动机(DFA)是一个有向图相比AC自动机而言 DFA在字符串处理方面更为自由 更为强大同时 对对自动机的理解也有更高的要求本文避开一些理论知识 从几个具体问题开始探讨DFA的应用预备问题 Pku1625题意是统计不包含某些串的串的个数思路是建立AC自动机然后递推 (也由AC自动机可以构造出DFA)记录Opt[i][j]为主串第i位 在自动机上到达j这个节点的方案个数则Opt[i][j]=Sum{Opt[i-1][Prev[j]]} 阅读全文

posted @ 2010-12-09 21:35 Master_Chivu 阅读(1686) 评论(0) 推荐(1) 编辑

2010年12月7日

[Pku 3691 1625] 字符串(四) {自动机应用}

摘要: {这一篇文章基于AC自动机介绍AC自动机的应用引出AC自动机的优化 有限状态自动机}AC自动机实质上是一个图为了解决某些关于字符串的最优化或是统计问题我们可以结合AC自动机和动态规划也就是在自动机上动态规划先来看一个具体的问题Pku 3691 http://poj.org/problem?id=3691题意  给定N个模式串(1 ≤ N ≤ 50) 最大长度为20  一个主串(长最大为1000)  允许涉及的字符为4个 {'A','T','G','C'}  求最少修改几个字符 使主串不包含所有模式串分析我们可以考虑一个最简单的算法搜索 枚举每一位的值 然后比较 复杂度达到了O(4^N)时间复杂 阅读全文

posted @ 2010-12-07 20:53 Master_Chivu 阅读(2699) 评论(2) 推荐(3) 编辑

2010年12月5日

[Hdu 2222] 字符串(三) {Aho-Corasick自动机}

摘要: {继续介绍字符串的相关内容这篇文章介绍Aho-Corasick自动机}Aho-Corasick自动机用于解决 多模式串匹配 的问题首先得了解 KMP算法和Trie树的相关理论先看一个具体的问题Hdu 2222 http://acm.hdu.edu.cn/showproblem.php?pid=2222题意 给定N个模式串 统计在一个长为M的主串里出现了多少个模式串KMP算法可以做 复杂度为O(MN)结合KMP算法和Trie树 AC自动机可以很好的解决这个问题AC自动机的第一步是把所有模式串建成一个Trie比如有模式串{SHE SHR SAY HE HR HER}第一步.建立相应的TrieTri 阅读全文

posted @ 2010-12-05 20:37 Master_Chivu 阅读(3740) 评论(2) 推荐(3) 编辑

导航