穷举搜索

阅读更多关于《穷举搜索》

对于一些困难的问题,我们只能穷举(brut force)搜索,是的,我们知道“穷举搜索”这个词,可是,具体怎么穷举呢?

很多问题可以归结到图的搜索,对于图的搜索,大家应该都知道 DFS 和 BFS, 继续阅读

第一个博弈程序

阅读更多关于《第一个博弈程序》

甲乙两人在玩一个游戏:一堆小石子,共n个,每次每人可以从中取1个,或2个,或4个,甲先开始,最后取的那个人输(不管他去1个,还是2个,还是4个)。

但是呢,甲乙两个人都是智力超群的天才,他们总会使用对自己有利的策略。 继续阅读

合并两个有序序列

阅读更多关于《合并两个有序序列》

经典写法

合并两个有序序列,太简单了吧?还有专门讨论的必要吗?

这是一个最简单的 Merge 版本: 继续阅读

Great Windows 7

阅读更多关于《Great Windows 7》

Windows 7,打开“下载”文件夹,里面也就几十个文件……

它非常“友好”地在地址栏部分显示一个进度条,等到进度条100%,右边文件夹内容部分变成非空白——文件显示出来,我可以去拉泡屎,再回来也不迟,我没有拉肚子,我便秘! 继续阅读

枚举变量扩展-2

阅读更多关于《枚举变量扩展-2》

前一篇文章里,可能有人注意到了:扩展结果中会出现同一变量的不同实例,如果我们要增加一个限制,扩展结果中每个变量都必须引用相同的实例,该怎么做?

枚举变量扩展

阅读更多关于《枚举变量扩展》

在很多配置文件中,都会牵涉到变量扩展,一个变量会有多少种可能的扩展结果,这在静态分析中非常重要。这里给出一个算法,使用 perl 来表达(expand.pl),变量引用使用统一的形式:${varname}。 继续阅读

gcc C++0x unique_ptr 实现太龌龊了

阅读更多关于《gcc C++0x unique_ptr 实现太龌龊了》

版本:g++ 4.6.0

龌龊之处: 继续阅读

C++0x 几个很败的修改

阅读更多关于《C++0x 几个很败的修改》

Until November 2009, std::future was named std::unique_future

Until November 2010, std::launch::deferred was named std::launch::sync.


 

 

非对称类型的 Comparator

阅读更多关于《非对称类型的 Comparator》

 

结构体数组,按字段查找

我有一个按字段 name 排好序的结构体数组,怎样使用 stl 来查找?

 

 

 

怎样定义 CompareName ?

 

 

一般的 Compare 这样定义:

 

这样的 Compare 只能用于排序,如果要用于查找,我们必须先构造一个 User 对象,再把想查找的name assign 这个 User::name, ….

 

terminal 的显示编码为 utf8 时用 vim 打开 gb2312/gbk/gb18030 编码的文件

阅读更多关于《terminal 的显示编码为 utf8 时用 vim 打开 gb2312/gbk/gb18030 编码的文件》

vim "+e ++enc=gbk filename"

vim "+e ++enc=cp936 filename"