脑补一个非有序数组的二分查找算法

2015-04-12
阅读 2 分钟
6.5k
原本想写Base64算法的,不过我还是想写点有趣的,而不是Base64这样没有什么思维难度的模版。在手贱在hihoCoder上看到了一个关于非有序数组的二分查找的题目,要求在非有序的数组上做线性的查找(于是就不能排序了),找到这个数组中第K大的值。做了一个下午,到晚上搞定,终于抠完几个细节。不过想的过程还是蛮棒的,这...

Java Servlet实现文件上传

2015-03-25
阅读 5 分钟
18.3k
文件上传可以说是Web应用中很常用的一块,前几天打算研究一下HTML5提供的FileReader API,并且用Tomcat作为后端来实验大文件的上传(只是学校的课程作业必须用Java写,都不允许使用最好的编程语言php>.<)。可Java Servlet与php这种喜闻乐见的Web码农语言不同,并没有提供一个很简单的处理文件上传的API,所以还捣...

用开源加密库Libgcrypt实现AES加密

2015-01-20
阅读 3 分钟
15.3k
Libgcrypt是著名的开源加密软件GnuPG的底层库,是一个非常成熟的加密算法库,支持多种对称和非对称加密算法。现在自己随便造轮子地写一个加密算法程序显然是非常不安全的,虽然OpenSSL出现了Heartbleed漏洞,但是用已经成熟的加密算法库还是会比不成熟的东西好很多的。最近看了看它最基本的一些功能,尝试写了一个AES的d...

从例子看C++模版

2014-10-26
阅读 3 分钟
3.9k
作为现代C++中最具表现力,被应用最广泛的一个语法功能,Templates(模版),无疑应该被仔细研究。自从有了STL,模版渐渐成为现代C++开发的主角。前不久因为老师的作业要求,我稍微学习了一下C++的模版,写一篇入门文,请大神轻喷,谢谢。

有向图欧拉回路的快速算法(POJ 2230题解)

2014-06-24
阅读 2 分钟
19.3k
高考考完开始进行算法竞赛的康复训练(好吧其实是从零开始直接学,过完高三什么都忘了T T),在POJ上做了一些水题。今天做到这道欧拉回路,很有感触,因为第一次学这个算法的时候并没有学透,今天再做才发现原来求欧拉回路的算法有这么精妙。

Graham Scan凸包算法

2014-04-30
阅读 4 分钟
13.6k
获得凸包的算法可以算是计算几何中最基础的算法之一了。寻找凸包的算法有很多种,Graham Scan算法是一种十分简单高效的二维凸包算法,能够在O(nlogn)的时间内找到凸包。

给wxPython事件处理函数传递参数

2014-04-29
阅读 2 分钟
7.6k
最近捣鼓Python,也就自然捣鼓上了wxPython。我曾经用过Qt和Gtk+写GUI,但几乎所有的Python书都告诉我说最好用的是wxPython,我没有尝试PyQt和PyGtk就开始研究wxPython了。在Qt和Gtk+之间我更喜欢Qt,因为它跨平台做得很好,而且商业化也不错。但wxWidget给人的感觉就完全不同了。

Aho-Corasick自动机浅析

2014-04-26
阅读 6 分钟
18k
由于各种机缘巧合和本人的智力因素,我在离开OI一年多后,终于搞清楚了AC自动机(Aho-Chorasick string match algorithm)。网络上介绍AC自动机的算法多是借助KMP算法(Knuth-Morris-Pratt algorithm)中的失配数组来写,但明明AC自动机是先于KMP的,因此我决定完全扔掉和KMP相关的东西,写一篇像我这样理解力比较低下的...

用impress.js制作幻灯片

2014-04-26
阅读 5 分钟
7.6k
前两天学长回学校进行洗脑宣讲,做了一个看上去很炫的缩放式幻灯片。我不知道是不是太浅薄了,找了很久才找到几个Web幻灯片工具。看了几个之后,我决定学习一下其中最Geek的impress.js。 impress.js是一款新兴的幻灯工具,它的效果类似Prezi,但是拥有3D的功能,而且是在MIT&GPL协议下开源,对于有一定的Web开发基础...

恢复/lib误删手记

2014-04-26
阅读 2 分钟
5.1k
学校机房采用一台IBM小型机作为OJ服务器,现在浙江大学的马宏菩学长给它装了CentOS 6.4,做了精密的配置,目标是它能正常工作十年以上。事实也证明他的工作何其卓越:从配置好到现在一年多时间从来没有遇到过任何系统问题,性能一直稳定得像放射性同位素的半衰期一样,作为一台OJ简直棒极了。他毕业后由我负责维护。