2010年12月4日

[PKU 3630] 字符串(二) {Trie 字典树}

摘要: {开始讨论字符串的问题上一篇是转载Matrix67的KMP算法讲解这一篇主要讨论Trie}Trie (发音Try)是一棵用于存储多个字符串的多叉树由于插入和查询都极为高效 又称字典树树的叉数就是字符串所含的字母种数大写字母字典树就是一棵26叉树我们以这种Trie为例 以方便讨论比如要存储6个串{SHE SHR SAY HE HR HER}Trie就是如上图所示的一棵多叉树一.Trie的结构基本的Trie的一个节点 包含这么两个信息Son['A'..'Z']:Pointer {儿子指针数组 下标是字符集合}Tail:Boolean {该节点是否是一个单词的结尾}Trie的字符信息纪录在边(指针) 阅读全文

posted @ 2010-12-04 22:36 Master_Chivu 阅读(2447) 评论(0) 推荐(1) 编辑

[PKU 3461] 字符串(一) {KMP算法}

摘要: {下来准备写点关于字符串的东西自然首先要写KMP无奈自己对KMP理解不够完全是因为看了 Matrix67神犇 的文章才理解的班门弄斧就免了 无耻地先直接转载}====================Matrix67 原文==================== 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们 阅读全文

posted @ 2010-12-04 13:37 Master_Chivu 阅读(1541) 评论(0) 推荐(1) 编辑

2010年11月27日

[LIS] 动态规划及其简单优化

摘要: {好久不写文章了前些日子 在搞联赛 再加上写的都是DP题自己还没掌握 所以不好写这次把比较基础的LIS问题写写}动态规划Dynamic Programming简称DP 是解决决策过程(decision process)最优化的方法本文结合一个简单的例子探讨DP的简单优化方法LIS问题 Longest Increasing Subsequence这个问题的变种很多 为讨论方便我们下面的LIS问题 都... 阅读全文

posted @ 2010-11-27 10:27 Master_Chivu 阅读(6714) 评论(0) 推荐(2) 编辑

2010年11月6日

[程序测试] FreePascal之Dos单元

摘要: {最近每天都去写了几个DP题blog没空更新了这次把我的OI/ACM程序测试机贴出来喜欢上OJ的同学可以下载用用}第一部分还是结合几个程序段来讲解Dos单元的函数1.调用Dos单元[代码]这次的程序需要加一句话{$M $4000,0,0}很重要 不然Dos单元的部分函数会出问题 第二句照常调用所需要的单元 同时调用了 Crt单元 和 Dos单元2.文件查找[代码]FSearch用于在指定目录下查找... 阅读全文

posted @ 2010-11-06 21:51 Master_Chivu 阅读(2839) 评论(0) 推荐(2) 编辑

2010年10月30日

[大海战] Freepascal之Crt单元

摘要: {这是我的首个一千行程序所以很多地方有冗余 不是很成熟况且程序上了千行用譬如Freepascal 等等这类的面向过程的平台就力不从心了Delphi7以前用过 不是很会用凭着对Crt单元的好奇 我写了这个小游戏}先给代码 可以直接copy走http://files.cnblogs.com/Booble/D_Game_CRT.rar可以先试试用用具体的玩法可以见于Readme.txt鉴于本人水平有限 本小游戏不作娱乐用途以免精神崩溃 仅用于示范Crt单元的功能当然几个人在机房寂寞的时候可以玩玩...下面结合几个程序段来解释Crt单元的某些函数的作用1.调用单元Uses(Name)Code high 阅读全文

posted @ 2010-10-30 19:17 Master_Chivu 阅读(3286) 评论(3) 推荐(2) 编辑

2010年10月24日

[Pku 2352 2155 Hdu 3584] 线段树(五) {树状数组}

摘要: {就我学过的数据结构而言最优美的数据结构是并查集然后是树状数组再次是散列表......}优美的含义就是简明 精巧当然特别强大的数据结构一般都不好写比如Splay 线段树 平衡树之类所以也不是很优美线段树确实强大 但是在有些情况下我们可以用树状数组实现线段树的一部分功能通常意义上的树状数组是一个一维数组 我们一般用c[]来记录相对的 还有一个原数组a[] 记录原有的序列 c[]是基于a[]而产生的树... 阅读全文

posted @ 2010-10-24 20:35 Master_Chivu 阅读(2268) 评论(1) 推荐(1) 编辑

2010年10月18日

[Zju 2112][逆序对统计] 线段树(四) {线段树扩展}

摘要: {承上三节...本节讨论线段树的扩展应用即树套树 树套XXX等等}线段树还可以和其他数据结构结合会产生更为强大的效果先看问题Zju 2112http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112给定数列和若干询问或操作操作修改序列的一个值 询问查询区间第K小值区间问题 是线段树的操作而第K小值和修改值则是 平衡树的操作我们能否把两个强大的数据结构组合起来呢?可以!最常用的方法是把线段树的每个节点都建为当前区间的数构成的平衡树这样我们就可以很容易地解决修改 建树操作[代码]建树每次新建节点都插入区间内所有节点即可实质上线段树 阅读全文

posted @ 2010-10-18 22:54 Master_Chivu 阅读(3291) 评论(0) 推荐(0) 编辑

2010年10月11日

[PKU 3468] 线段树(三) {Lazy-Tag思想}

摘要: {继续讨论线段树一个很重要的思想Lazy-Tag}先看一个具体问题吧 PKU 3468http://poj.org/problem?id=3468题意很清楚 1 ≤ N,Q ≤ 100000."C a b c" means adding c to each of Aa, Aa+1, ... , Ab. -10000 ≤ c ≤ 10000."Q a b" means que... 阅读全文

posted @ 2010-10-11 12:33 Master_Chivu 阅读(5976) 评论(0) 推荐(1) 编辑

2010年10月10日

[PKU 1177 3277] 线段树(二) {离散化 矩形并问题}

摘要: {承上篇这次的代码是好久以前写的感觉比较乱 将就看看吧这里介绍线段树的删除和一些其他技巧以求矩形并的周长和面积为例}上次讨论了利用线段树解决涂色的问题有一个问题遗留下来如果我要擦除颜色 该怎么做呢?很简单 只要插入颜色为0的线段就可以了因为这里的插入是覆盖型的任何一个区间只有一个颜色 要擦也是一起擦干净也就是一个节点上至多只被盖着一条线段 以前的线段会被新来的取代所以这是一个特殊的问题更为一般的问... 阅读全文

posted @ 2010-10-10 14:08 Master_Chivu 阅读(4047) 评论(1) 推荐(3) 编辑

2010年10月9日

[PKU 2777] 线段树(一) {概述 基本操作}

摘要: {以前写的线段树都是零碎而且描述的也不清楚最近打算整理一下就从我的第一个线段树程序开始吧}线段树 Segment_tree网上有人把线段树翻译成 Interval_TreeInterval_Tree 是另外一种数据结构 而且并非二叉树这个是线段树的标准E文翻译可以看wikipedia的原文 http://en.wikipedia.org/wiki/Segment_tree顾名思义 线段树存储的是连... 阅读全文

posted @ 2010-10-09 22:04 Master_Chivu 阅读(5532) 评论(7) 推荐(4) 编辑

2010年10月2日

[PKU 3225] 线段树应用

摘要: {线段树应用就是那些可以用线段树做但是不是简单地套模版可以解决的问题应用两字可谓深不见底}原题  http://poj.org/problem?id=3225题意  给定初始的实数空集S  和多个集合操作{C T}(交 并 差)  要求输出操作完最后的集合S  比较特别的是 给定的T集合都是区间形式这是一个典型的数据结构问题还是要求我们设计一个程序来支持多个操作我们的设想是 使用较少的函数 经过适... 阅读全文

posted @ 2010-10-02 22:09 Master_Chivu 阅读(1996) 评论(0) 推荐(0) 编辑

2010年10月1日

[PKU 2985] 平衡树&并查集

摘要: {数据结构不常常写会手生的于是就找了一个数据结构题写写题目不错 是并查集和平衡树or线段树的结合还有...poj更新域名了我现在才知道...最近光忙着写自己的程序了好久没上了}原题 http://poj.org/problem?id=2985题意  给定1-n范围内的n个数(n<=20w)  一开始每个数分属一个一元集  要求设计程序支持以下操作    将任意2个数及其所在集合合并    如... 阅读全文

posted @ 2010-10-01 17:57 Master_Chivu 阅读(1985) 评论(4) 推荐(0) 编辑

2010年9月30日

[01背包] 遗传算法

摘要: {最近向 我不容易 学习了遗传算法他是专门研究这智能搜索这一方面的 水平很高在我用ID算法解决"十滴水"小游戏时他用遗传算法也写了 很强大我用从他那所学的遗传算法 写了一个01背包问题的程序}01背包问题 大家应该很熟悉是背包问题的一种不过值得注意的是背包问题是NPH问题(如果容量和体积是整数且有范围的话 自然用DP可以很好的解决)对于此类没有多项式复杂度算法的问题我们一般用搜索解决对于01背包问... 阅读全文

posted @ 2010-09-30 19:25 Master_Chivu 阅读(4982) 评论(7) 推荐(3) 编辑

2010年9月23日

[Bloxorz] 强大的搜索(下)

摘要: {承上篇介绍一下对于bloxorz的程序解决方法Bloxorz果然是这几个游戏中最奇妙 最有趣 最复杂的这几天净绕着这个程序转了不堪回首}//建议玩一玩之后再行阅读本文BloxOrz据某神解释 Blox就是方块 Orz就是你玩不出来的状态这名字好邪恶刚推出的时候号称全世界就4个人玩的过我下载手动通关也就3个小时左右相当自豪啊 不过当时好像Orz了几次 都撑过去了当时没想过去用程序做现在想到了 就试... 阅读全文

posted @ 2010-09-23 10:20 Master_Chivu 阅读(2000) 评论(10) 推荐(2) 编辑

2010年9月21日

[PKU 1127 1410 USTC 1121]判断线段相交 判断点在多边形内

摘要: {Bloxorz的程序突然出现了bug调试得郁闷不过这也算是好事吧先做了几道计算几何学了2个基本的计算几何方法}计算几何有一个基本的问题就是判断线段相交这里介绍2种方法一种是“外积”法 另一种是求交点先讲"外积"法这里的叉积好像有点不伦不类 说是外积吧 求出来却是一个纯量说不是吧 又好像有外积求模的影子 似乎是外积的简化吧不扯了 我就用*号代替×号好了(本来计算... 阅读全文

posted @ 2010-09-21 00:20 Master_Chivu 阅读(1869) 评论(2) 推荐(1) 编辑

导航