随笔分类 -  算法

高效算法技巧
摘要:1.能用变量记状态的 就用变量记, 不要建数据结构. (状态项链表)能用位置当索引的 就用位置记, 不要建数据结构. (链成员)能重复利用的变量, 就重复利用. (xxx算法每次只记录1个位置状态,经典)2. 阅读全文

posted @ 2011-04-22 17:51 oleeceo 阅读(136) 评论(0) 推荐(0)

漂亮的算法
摘要:[2011.3.6]1块,3块,5块,20块, 6个,3个,7个,4个, 凑25,12,8,35,50, 每个只能用4个来凑.要点:1. 成功判断 + 输出函数 2. 每个函数处理单层 + 传参层进 3. 有一些需要层进的参数,需要设为函数参数。 int value[4] = {1, 3, 5, 20}; int num[4] = {6, 3, 7, 4}; int des[5] = {25,12,8,35,50}; int result[5][4]= {0}; int out() { printf("结果:"); for (int i=0; i< 5; i++) { 阅读全文

posted @ 2011-03-06 13:34 oleeceo 阅读(222) 评论(0) 推荐(0)

回溯
摘要:Backtracking回溯是一种普通的算法,用来寻找 所有解。经典的 教科书版的列子 是 用回溯解决 八皇后问题回溯可以应用于这样的问题: 他承认这个概念“部分候选解”和一个快速的测试它是否是一个完整解。回溯不能应用在这样的问题: 把一个数字无序的放在一个表格里。但是回溯总是很快 比起 强行美剧所有可能解, 因为回溯可以形成一定数量的候选解,通过简单的测试。回溯是解决 约束问题 的重要工具, 例如: 填字游戏, 口头算数, 数独, 和一些困扰人的问题。他通常非常方便(如果不要求效率)的技术,用来解析, 背包问题, 和一些其他的组合优化问题。它是一些编程语言的 语言逻辑, 例如Icon, Pl 阅读全文

posted @ 2011-03-06 13:30 oleeceo 阅读(279) 评论(0) 推荐(1)

思考方法
摘要:全过程查找1. 记录: 把所有过程, 每一步都印在脑子中(不管是对的, 是错的, 是撤销的, 是添加的, 是胡想的)2. 下一步考虑: 要考虑到之前所有步, 是否能用上.eg1: 找凸包过程一点一点画,一点一点连,中间有撤销的步骤也要记录下来,寻找规律。eg2: 画一个闹钟的Icon. 搜集所有曾经有过的闹钟实物样子, 动画样子, 寻找闹钟最可爱, 最鲜明的特点进行最简单的抽象. 让人一眼看去就明白, 他是个闹钟, 哦他太可爱了!   结果就是1个带表盘的圆身体和两个会闹的扁圆耳朵, 画的可爱些, 尝试改变比例. 哦就是他了。 从过程找答案eg1: 煮鸡蛋皮不好包想一想煮鸡蛋过程, 因为热胀 阅读全文

posted @ 2011-02-07 19:43 oleeceo 阅读(156) 评论(0) 推荐(0)

算法练习^例题
摘要:[2011.03.05] 从之前的信息可以看出,任何问题,都要先 走几步看看,总结一下,感觉一下,分析一下。[2011.03.05] 1生门,1死门,1人只说真话,1人只说假话, 这俩人知道哪个是生门哪个是死门。 1句话,你怎么问出结果。需要包含的信息问A,这是生门? 问B,这是生门? 单独问无法说明哪个是真。问A,他是真(真话)人?B答不是。问B,他是真(真话)人?B答不是。1. 所以必须带有两个人的信息。2. 必须包含门的信息,不然怎么知道哪个是生死?目前:至少你要问A,他会说你是真人么? 真人会说,不会。 问B,他会说你是真人么? 假人会说,会。如何把门的信息加入?[2011.02.28 阅读全文

posted @ 2011-02-03 10:57 oleeceo 阅读(185) 评论(0) 推荐(0)

导航