2013年5月3日

版本控制系统的另一个选择 - Fossil

摘要: 一直用Git做版本控制,听说水银也很流行。今天看SQLite的时候发现它是用Fossil进行版本控制的。一些特性似乎很有趣,简单,分布式,一句fossil ui命令可以马上弄出一个project的网站。挖个坑。。以后慢慢写。阅读全文

posted @ 2013-05-03 09:53 oa414 阅读(83) 评论(0) 编辑

2012年8月6日

Vimrc 设置

摘要: colo desertset guifont=FreeMono\ 16"不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on"依文件类型设置自动缩进filetype indent plugin on "显示当前的行号列号:set ruler"在状态栏显示正在输入的命令set showcmd "关闭/打开配对括号高亮"NoMatchParenset noeb" 在处理存或只读文件的时候,弹出确认set confirm" 自动缩进set autoind阅读全文

posted @ 2012-08-06 12:25 oa414 阅读(78) 评论(0) 编辑

2011年10月28日

Windows下用批处理程序进行对拍

摘要: 在做算法类竞赛的题目的时候,容易想到一个朴素的能保证完全正确的算法,但是会超时。而高效的算法又不能保证完全写对。这时候可以自己写一个朴素的算法、一个数据生成程序和一个文件比较程序进行验证高效算法的正确性。在Windows下,fc命令提供了比较文件的功能,虽然批处理不如Linux下的bash等强大,但也足以写个自动比较的程序了。下面以求逆序对为例。题目类似于POJ3067,排序后求逆序对。数据量N=300000。容易想到类似于冒泡排序的枚举逆序对,先写出来。命名为standard.pasconst MAXN = 500000;type car = record x,v:longin...阅读全文

posted @ 2011-10-28 10:59 oa414 阅读(325) 评论(0) 编辑

2011年9月16日

双向广度优先搜索

摘要: 其实就是BFS,从初始状态和目标状态同时搜索,什么时候撞上了就是找到了。但是实现起来比较麻烦。我模仿了一个程序写了NOIp2002的子串变换,采用的是节点少的先扩展。然后自己写了POJ1915,但是调试不出来。于是又模仿了一个程序写了交替扩展节点的程序,发现代码能精简不少。 上百行的程序必须注意代码的质量了。否则理解和调试会很麻烦的。 下面是两个程序。 字串变换{简单的搜索题,写了一个BFS,5...阅读全文

posted @ 2011-09-16 22:19 oa414 阅读(727) 评论(0) 编辑

2011年8月16日

差分约束系统

摘要: 以前看算法导论的时候被那个矩阵吓住了,其实差分约束系统很简单,就是解一组特殊的不等式,可以转化为最短路的算法解决。算法本身不难,难在构图。 因为网上有不少好的资料,所以就不详细写了,具体请看: http://imlazy.ycool.com/post.1702305.html http://hi.baidu.com/fallingflowers/blog/item/c8068c6fbcaddddc...阅读全文

posted @ 2011-08-16 23:12 oa414 阅读(116) 评论(0) 编辑

2011年8月14日

单调队列:基础

摘要: 所谓单调对列,就是一个队列,其中元素是单调递增的或是单调递减的嘛。一般用来优化动态规划,因为决策总是取最优值,所以取出元素的时候只需要拿队首或队尾就行了,插入/删除元素的时候要从队首、队尾调整。均摊的效率是O(1),因为每个元素最多进出1次。 单调队列很经典的一个应用是最长不下降子序列的优化。具体的就不多说了,详细的分析网上到处是。 这里贴三道单调队列的基础题。第三题据说很经典。 RQ208/* ...阅读全文

posted @ 2011-08-14 23:40 oa414 阅读(685) 评论(0) 编辑

Treap:查找第k大元素

摘要: 线段树、树状数组虽然查找第k大元素很方便,树状数组代码更是相当短。但是,两者必须要求数据为一定范围内的整数,否则就不能用区间和来查找第k大元素了。所以,学习用BST查找第k大元素是很有必要的。下面给出代码,Pascal版本的Treap查找第k大元素,写得很丑。{小根堆实现,支持插入、删除、findkth等操作,其它的什么findmin什么的应该不难。主要是要维护一个size和cnt域,另外每次旋转...阅读全文

posted @ 2011-08-14 23:29 oa414 阅读(496) 评论(0) 编辑

2011年7月29日

虚二叉树

摘要: 以前在DD的博客上看到过虚二叉树这个词,很好奇。但是但是水平有限,DD的博客上也只是几句个人的总结而没有具体的讲解,就没有去研究。 今天头脑一热,想起这个词,然后仔细看了一下,发现和我原来在网上看到的一道线段树的实现很相似,代码也相当短。就仔细看了一下。但是这个东西网上资料相当少,不知道是不是有其他名字。在谷歌学术中搜索只有一篇一笔带过的没什么内容的论文,网页搜索也只看到两三个博客且都没有讲解。不...阅读全文

posted @ 2011-07-29 13:49 oa414 阅读(330) 评论(0) 编辑

线段树(二):成段更新

摘要: POJ 2777/* 线段区间染色,并统计区间内颜色个数 因为颜色不多可以用位运算,但是我还是用数组记录 注意:C的>>和<<运算符比+ - 低,x << 1 + 1来表示x * 2 + 1是错的,必须套上括号 即(x << 1) + 1,已经不止一次犯这个错误了。 精简了一下代码。但还是上百行…… 2011-07-29 07:59*/#include <stdio.h>#define MAXN ...阅读全文

posted @ 2011-07-29 08:30 oa414 阅读(309) 评论(0) 编辑

2011年7月25日

优先队列:二叉堆优化的Prim与Dijkstra算法

摘要: 终于调出来了,理解之后其实很简单,但是一些细节总是没处理好。直到现在还有一点疑问在。 两者的渐进复杂度都是O(ELogV+VLogV),因为边调整了E次,删除最小元V次,二叉堆的操作都是LogV级别的。 事实上两个算法很相似,Prim只是松弛操作和Dijksrra还有记录ans的方式不同。 在算法导论上看到,Kruskal算法是ELogE的即可以约成E*2LogV即ELogV,渐进意义上是和Pri...阅读全文

posted @ 2011-07-25 09:50 oa414 阅读(2639) 评论(0) 编辑

导航

统计

公告