摘要: Direct2D 是微软新的二维图形 API,它支持硬件加速,并且内置了很多特效(Effects),能够实现很多效果。本篇文章介绍了如何通过组合四种内置特效,来实现位图的斜角(Bevel)效果。 阅读全文
posted @ 2013-07-01 21:57 CYJB 阅读(9304) 评论(5) 推荐(5) 编辑
摘要: 本篇文章介绍了 WPF 中 Win8 风格的 TreeView 样式的实现,包括节点的整行选择和样式的定义,包含完整的代码和示例。 阅读全文
posted @ 2013-06-04 19:40 CYJB 阅读(12857) 评论(2) 推荐(4) 编辑
摘要: 这里介绍了在词法分析中,如何根据 DFA 构造出词法分析器,并给出了一些词法分析器的示例。 阅读全文
posted @ 2013-05-07 01:01 CYJB 阅读(7778) 评论(2) 推荐(3) 编辑
摘要: 这里介绍了在词法分析中,如何从 NFA 转换为 DFA,以及对 DFA 和字符类进行化简。 阅读全文
posted @ 2013-05-02 23:50 CYJB 阅读(7534) 评论(4) 推荐(4) 编辑
摘要: 这里介绍了在词法分析中,如何将正则表达式转换为相应的 NFA、如何划分字符类、多条正则表达式的转换以及行首限定符和上下文的处理。 阅读全文
posted @ 2013-04-16 15:32 CYJB 阅读(9055) 评论(2) 推荐(6) 编辑
摘要: .Net 中自带了一个位压缩数组 BitArray,它的功能也跟数组一样,只能对每一位进行操作,而不能添加或删除位。这里介绍的 BitList 类,就是自己写的能够添加、删除位的位压缩列表。 阅读全文
posted @ 2013-04-14 11:08 CYJB 阅读(1827) 评论(2) 推荐(0) 编辑
摘要: 编程之美 2013 全国挑战赛 初赛第一场 题目二 相似字符串 解题报告。对于两个长度相等的字符串,我们定义其距离为对应位置不同的字符数量,同时我们认为距离越近的字符串越相似。现在给定两个字符串 S1 和 S2,其中 S2 的长度不大于 S1。请在 S1 中寻找一个与 S2 长度相同的子串,使得距离最小。 阅读全文
posted @ 2013-04-13 18:06 CYJB 阅读(2728) 评论(5) 推荐(0) 编辑
摘要: 编程之美 2013 全国挑战赛 资格赛 题目三 树上的三角形 解题报告。有一棵树,树上有只毛毛虫。它在这棵树上生活了很久,对它的构造了如指掌。所以它在树上从来都是走最短路,不会绕路。它还还特别喜欢三角形,所以当它在树上爬来爬去的时候总会在想,如果把刚才爬过的那几根树枝/树干锯下来,能不能从中选三根出来拼成一个三角形呢? 阅读全文
posted @ 2013-04-09 00:27 CYJB 阅读(2785) 评论(0) 推荐(2) 编辑
摘要: 编程之美 2013 全国挑战赛 资格赛 题目二 长方形 解题报告。在 N × M 的网格上,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。 阅读全文
posted @ 2013-04-09 00:20 CYJB 阅读(3014) 评论(2) 推荐(0) 编辑
摘要: 编程之美 2013 全国挑战赛 资格赛 题目一 传话游戏 解题报告。Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位…… 阅读全文
posted @ 2013-04-09 00:16 CYJB 阅读(2334) 评论(0) 推荐(1) 编辑
摘要: .Net 中内置的集合(HashSet 阅读全文
posted @ 2013-04-04 22:19 CYJB 阅读(1623) 评论(0) 推荐(1) 编辑
摘要: 在词法分析中,正则表达式是一种描述词素的重要表示方法,它可以非常高效的描述处理词法单元时要用到的模式类型。这里介绍了词法分析中用到的正则表达式的定义、表示,以及用 NFA 和 DFA 进行模式匹配的简单原理。 阅读全文
posted @ 2013-04-02 16:30 CYJB 阅读(9280) 评论(3) 推荐(7) 编辑
摘要: 本文介绍了一个用于词法分析器的,可以支持无限制回退的输入缓冲类,以及如何实现在代码中定位行号和列号。 阅读全文
posted @ 2013-03-28 23:19 CYJB 阅读(6417) 评论(1) 推荐(4) 编辑
摘要: C# 中的 Encoding.Default.GetByteCount 方法,使用的时候却有很容易忽视的内存问题,具体表现为多次(数万次,不同电脑可能不同)调用 GetByteCount 方法时,会导致内存垃圾回收,那么意味着在这个过程中产生了大量的临时对象。 阅读全文
posted @ 2013-03-26 21:24 CYJB 阅读(4239) 评论(1) 推荐(5) 编辑
摘要: 词法分析是编译原理的第一步,本篇文章会对词法分析做综合性的概述,介绍其中用到的技术和大致的流程。 阅读全文
posted @ 2013-03-25 19:54 CYJB 阅读(13330) 评论(3) 推荐(10) 编辑
摘要: .Net 的反射是个很好很强大的东西,不过它的效率却实在是不给力。本篇文章同样是讨论利用委托来加速反射调用函数,不过重点并不在于如何提升调用速度,而是如何更加智能的构造出反射的委托,并最终完成一个方便易用的委托创建器 DelegateBuilder。 阅读全文
posted @ 2013-03-21 19:57 CYJB 阅读(13550) 评论(16) 推荐(5) 编辑
摘要: 这篇随笔介绍了一个比较完整的 C# 中泛型方法的类型推断的实现。这里所谓的“泛型方法的类型推断”,指的是根据已有的方法实参的类型,推断出泛型方法的类型实参。对于泛型方法 void Method(T[] args),如果我给出方法实参类型是 int[],那么则能够推断出 T = int。 阅读全文
posted @ 2013-03-19 18:19 CYJB 阅读(8191) 评论(1) 推荐(1) 编辑
摘要: 在进行反射时,一个名为 binder 参数很少被使用,但实际上它可以几乎完全控制反射的工作方式。本篇随笔中我将解释 binder 参数到底是做什么的,并且实现了一个支持反射泛型方法和支持强制类型转换的 PowerBinder 类。 阅读全文
posted @ 2013-01-22 20:32 CYJB 阅读(5838) 评论(6) 推荐(4) 编辑
摘要: DescriptionAttribute 经常被用来为属性或事件提供说明,在一些用户界面中,就可以提供一些额外的信息。但是,并没有内建对枚举项的 DescriptionAttribute 的支持,这里介绍了枚举项的 DescriptionAttribute 的提取、解析以及在 PropertyGrid 中显示。 阅读全文
posted @ 2012-12-29 00:46 CYJB 阅读(16361) 评论(7) 推荐(5) 编辑
摘要: C# 中提供了两个运算符 is 和 as 和 Type.IsAssignableFrom 方法来判断两个类型是否兼容,但不能判断类型间是否可以隐式或强制类型转换,只能自己来完成这个功能。 阅读全文
posted @ 2012-12-01 00:22 CYJB 阅读(9354) 评论(0) 推荐(2) 编辑
Fork me on GitHub