摘要: 算法课要考试了。没想到一晃就到学期末了。一开始是打算边上课边整理算法的学习笔记的,结果拖到现在了。如果现在复习的时候不整理,估计以后都不会整理了。那就现在整理吧。 课本,算法设计技巧与分析。 先来看第一章,主要内容是复杂性的概念和分析。 为了分析算法的复杂性,提出了计算时间复杂性和空间复杂性的方法。对于时间复杂性,计数元运算操作的次数。元运算如算数运算,包括加减乘除,还有比较和逻辑运算,赋值运算,包括遍历表或树的指针赋值。对于空间复杂性,计数用到的存储单元,不包括分配用来存储输入的空间。 复杂性是相对于问题的输入规模而言的。当输入是一个列表的时候,输入规模是列表元素的个数,而当输入... 阅读全文
posted @ 2012-05-12 20:56 Frandy.CH 阅读(218) 评论(0) 推荐(0) 编辑
摘要: Code Jam的Round 1已经结束了,水平太菜,已经被淘汰了。开始整理做过的题。就从Qualification Round开始吧。http://code.google.com/codejam/contest/1460488/dashboard#s=p0Problem A.Speaking in Tongues 这道题比较简单,题目大概意思就是一种方言,也是使用英语的26个字母,但与正常英语里面的26个字母有一个固定的映射关系,题目要求使用这种映射关系,把给定的语句翻译成另一种语句。 需要注意的是,题目是出了示例,而且有提示的3个字母的映射关系,那么如果示例里面有剩下的映射关系,问... 阅读全文
posted @ 2012-05-10 23:29 Frandy.CH 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 磁盘不进行碎片整理会是一个问题。 没有垃圾回收机制也是一个问题。 当下载的各种论文各种pdf在电脑的各个文件夹中乱七八糟的时候,是不是就会无缘无故的心烦意燥起来,明明记得那份论文已经下载下来了,但不知道放那去了,难道再下一份?或者这下载的已经不是第二份了。不擅长于文件管理,系统的文件管理还不够智能,文件管理就成了一个头疼的问题。 现在云炒得很热,云存储,云操作系统,只要一个Web浏览器就可以了。现在的网速还不是很快,把文件放在云端还不那么靠谱,但是我觉得把文件用Web界面来管理还是很不错的。Google一直在搞Chrome OS,专门搞了个浏览器操作系统,我觉得很浪费资源。它直接把C... 阅读全文
posted @ 2012-05-06 22:39 Frandy.CH 阅读(2054) 评论(0) 推荐(0) 编辑
摘要: 以前的版本是11.10,启动系统后,就提示有是否升级到12.04的提示,选择升级,然后就开始下载内容和升级了。第一次以这种方式升级,以前基本上都是重新安装,不过这次希望保留已经安装的软件,所以就用这种方式了。下载升级包的速度还是蛮快的(或许是因为在校内,用的是学校的升级源),不过安装升级包的速度还是有点慢,一开始显示需要三个多小时,还好后来时间跳了几次,总共时间大概1个多小时吧。而且升级过程中还有一些信息需要确认,比如Apache和MySQL的更新确认,升级过程中最好不要在继续使用,我本来想边升级,边看看网页的,结果后来浏览器死掉了,其他的也没反应,还好最后升级完了。 Unity比11.... 阅读全文
posted @ 2012-05-05 20:46 Frandy.CH 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 习惯在Matlab里面计算,不太喜欢系统自带的计算器,但Matlab每次启动都比较慢。对于简单的计算,用不着Matlab,一直希望有一个简单版本的Matlab。一次看到OSChina上有分享一个简单的命令行计算器,觉得这个不错,不过功能仅限于数字的四则运算,于是想着可不可以写一个功能在稍微强一点的命令行计算器。于是就有了这个项目,称之为Command Line Calculator(CLC)。希望实现的功能,1. 数值运算,整数和浮点数;2. 变量赋值,表达式运算;3. 数学函数;4. 其他。网上已经有些计算器或者是数学表达式运算的程序了,上面的功能也有人实现了的。所以我在做一边,一是练习一下 阅读全文
posted @ 2012-05-03 22:55 Frandy.CH 阅读(1261) 评论(0) 推荐(0) 编辑
摘要: 最近开始读《黑客与画家》,觉得这是一本非常好的书,尤其是对程序员。书中有很多可以学习的地方,下面是自己的一些心得,大家多多交流。 在第二章,作者解释了书名,为什么把黑客与画家放在一起,黑客与画家相同的地方就在于,他们都是创造者。与作曲家,建筑师,作家一样,黑客和画家要做的是创造好的东西,他们本身不做研究,如果他们在创造好的东西的过程中发现一点新的东西,那就更好了。而创造好的东西的方式,通常是对已经存在的东西做些巧妙的修改,或是以一种新的方式将已经存在的想法结合起来。所以黑客有些尴尬,在学校里的话,会要求做些学术性的东西,在公司一般又会被要求实现代码,能够自己定义自己想做的东西的黑客少之又... 阅读全文
posted @ 2012-05-02 20:16 Frandy.CH 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 昨天Google Code Jam 2012 Round 1A。由于没有注意到它只进行两个半小时,而不是从你开始做开始计时,直接错过了参加比赛。后来看了一下题目,新题目还是比较有意思的,下面就给出各题的参考和实现。A. Password Problem 第一道题,跟概率有些关系。先理解一下题目意思。 一个人在输入一个很长的密码,输到一半时觉得前面可能有地方错了,那么他有三种选择, 1、继续输入,提交,如果没有错,ok。如果有错误,那么重新输入,这一次一定不会输错; 2、按退格键若干格,然后完成输入并提交。新输入的部分是不会出错的。如果错误被空格键清除,那么提交通过,否则需要重新... 阅读全文
posted @ 2012-04-29 18:41 Frandy.CH 阅读(611) 评论(2) 推荐(0) 编辑
摘要: 动态规划(Dynamic Programming)可以用来非常有效的解决许多搜索优化问题。这类问题都有相同的地方,原问题可以分解为子问题,子问题中有重复的部分(overlapping subproblem),或者原问题的最优解与子问题的最优解具有相同的结构(optimal substructure),将规模较小的子问题的最优解扩展为规模较大的问题的最优解。它之所以有效,是因为它采用自底向上的方式递推求值,并把中间结果存储起来以便以后用来计算所需要求的解。 动态规划虽然比较容易理解,在应用过程中可以分为两步,先找出子问题的最优结构,然后找出子问题的最优解向规模较大子问题的最优解扩展。但在具... 阅读全文
posted @ 2012-04-27 22:47 Frandy.CH 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 今天打开cnblogs,看到园龄1年,才发现自己来这里这么长时间了。 从开始想到要建个Blog,在CSDN和cnBlogs中间选了好久,到决定使用cnBlogs,然后开始写些东西,似乎还没过去多久,却竟然已经一年了。 数数Blog上的文章,如果不考虑这个月把Gooogle Code Jam上的练习题贴上来,也就二十多篇,一开始的时候写了几篇,后来课程比较多,想等暑假和寒假来整理一些内容,结果在假期里没有什么动力去整理那些东西,园子似乎要荒芜下来。直到这次Google Code Jam,想练习一下,于是把做的东西贴出来了,强迫自己把这些练习题做完。虽然这样,却还是有几道题还没有贴出来,因... 阅读全文
posted @ 2012-04-27 14:18 Frandy.CH 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 这道题是Round 1B 2010的第二道题,第一次看的时候,没看懂题目意思,这一次总算是把题目看懂了。看懂之后,才发现,原来如此简单。 先说一下题目意思,在一条非常narrow的路上,有一群chicks,以各自的速度朝Barn前进。如果后面一只撞上前面的一只,就要以前面一只的速度前进。现在有一个arm ofcrane,机械臂,可以瞬间交换两只chick的位置,如果一只速度比较快的A被前面一只B挡住了,就可以交换一下,那么A到B的前面去了,而不用以B的速度前进。要求在一定时间T内,有K只到达barn。问是否可能,如果可能,需要交换的次数最少是多少。 在题目意思理解清楚之后,就会发现,如... 阅读全文
posted @ 2012-04-24 20:30 Frandy.CH 阅读(258) 评论(0) 推荐(0) 编辑