04 2012 档案

POJ 1753 Flip Game (递归枚举)
摘要:POJ 1753,题目链接http://poj.org/problem?id=1753,翻译一下整个题目的大概意思:有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白->黑)时,其周围上下左右(如果存在的话)的格子的颜色也被反转,问至少反转几个格子可以使4*4的正方形变为纯白或者纯黑?主要思路如下:1.对于每个格子,它要么反转0次,要么反转1次(当然,它的邻格子也跟着反转),因为它反转偶数次和反转0次的效果是一样的,同理反转奇数次的效果和反转1次的效果是一样的。2.由于只有16个格子,我们可以选择0个格子,1个格子,2个格子,3个格子..... 阅读全文

posted @ 2012-04-27 19:44 NULL00 阅读(24403) 评论(2) 推荐(1)

从数组中取出n个元素的所有组合(递归实现)
摘要:今天在做POJ 1753时,需要枚举一个数组中所有组合。之前也遇到过类似的问题,如求从n个数组任意选取一个元素的所有组合都是想起来比较简单,但是设计成算法却颇费周折。如数组为{1, 2, 3, 4, 5, 6},那么从它中取出3个元素的组合有哪些,取出4个元素的组合呢?比如取3个元素的组合,我们的思维是:取1、2,然后再分别取3,4,5,6;取1、3,然后再分别取4,5,6;......取2、3,然后再分别取4,5,5;......这样按顺序来,就可以保证完全没有重复。这种顺序思维给我们的启示便是这个问题可以用递归来实现,但是仅从上述描述来看,却无法下手。我们可以稍作改变:1.先从数组中A取出 阅读全文

posted @ 2012-04-27 16:35 NULL00 阅读(40429) 评论(4) 推荐(7)

散列表(Hash Table)总结
摘要:复习了下散列表(Hash Table),总结如下:1.直接寻址表 直接送数组进行对应,但是当要存储的关键字集合K相对于域U很小时,就会很浪费空间。2.散列表 利用Hash函数进行映射 “碰撞”发生时,利用链接法解决3.散列函数的选择 3.1除法散列表 h(k) = k mod m,m是与2的整数幂不太接近的质数 3.2乘法散列表 h(k) = 【m*(k*A mod 1)】向下取整,其中A最好取0.618....... 3.3全域散列 ha,b(k) = ((a*k + b) mod p) mod m,a属于{1, 2 ..., p-1},b属于{0, 1 ..., p-1}... 阅读全文

posted @ 2012-04-25 14:45 NULL00 阅读(1162) 评论(3) 推荐(0)

POJ 1177 Picture (线段树+离散化+扫描线) 详解
摘要:POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177在做本题之前,必须先了解什么是线段树和离散化,请看前一篇博文线段树(segment tree),里面对线段树和离散化的说明相对比较清楚了。对于这题,我们的思路步骤如下(代码和下面的文字解释结合着看):1.对于输入的N个矩形,有2*N条纵向边,我们把这些边叫做扫描线2.建立一个struct ScanLine,保留这些扫描线struct ScanLine{ int x;//横坐标 int y1;//扫描线的下端点 int y2;//扫描线的上端点 int flag;//若该扫... 阅读全文

posted @ 2012-04-22 12:49 NULL00 阅读(7493) 评论(5) 推荐(5)

线段树(segment tree)
摘要:线段树在一些acm题目中经常见到,这种数据结构主要应用在计算几何和地理信息系统中。下图就为一个线段树:(PS:可能你见过线段树的不同表示方式,但是都大同小异,根据自己的需要来建就行。)1.线段树基本性质和操作线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。线段树T(a,b)也可递归定义为:若L>1 : [a, (a+b) div 2]为 T的左儿子; [(a+b) div 2,b]为T 的右儿子。 若L=1 : T为叶子节点。线段树中的结点一般采取如下数据结构:struct Node{ int left... 阅读全文

posted @ 2012-04-22 03:25 NULL00 阅读(41184) 评论(7) 推荐(9)

Emacs入门之常用命令
摘要:自己装了个Emacs23,把常用命令贴在这里供以后参考,C - v 下一屏M - v 上一屏C - f 往前一个字符C - b 往后一个字符C - p 上一行C - n 下一行M - f 往前一个词M - b 往后一个词C - a 行首C - e 行尾M - a 句首M - e 句尾M - > 文件末尾M - < 文件开头C - u 输入参数如:C - u 8 C - fC - g 取消之前的命令C - x 1 关掉当前文档窗格C - u 8 * 在文本中输入8个*字符Backspace 删除前一个字符C - d 删除光标后一个字符M - Backspace 移除光标前一个词M - 阅读全文

posted @ 2012-04-18 21:07 NULL00 阅读(971) 评论(0) 推荐(0)

巴塞罗那VS皇家马德里
摘要:下周日,西甲联赛第35轮,巴塞罗那主场迎战皇家马德里。不知是不是天意,梅西在第34轮对阵莱万特时攻进两球,追平了C罗,两人在西甲联赛都进了41球。而且巴塞罗那目前落后皇马4分,如果他们主场取胜,则只落后1分,西甲冠军的归属就会更加激烈。从目前形势来看,皇马和巴萨将在2012年5月19号的安联球场会师欧冠决赛。C罗的长途奔袭、落叶球、远射、头球,梅西眼花缭乱的过人、横切抽射、挑射,希望能看到C罗和梅西的又一次天王对决!还有他们各自的队友,卡卡、迪马利亚、伊瓜因、哈维、伊涅斯塔、法布雷加斯...这是几天前的一张图: 阅读全文

posted @ 2012-04-15 23:05 NULL00 阅读(800) 评论(6) 推荐(0)

数学等式之美!
摘要:今天看到了一个有趣的等式如下: 1 x 8 + 1 = 9 12 x 8 + 2 = 98 123 x 8 + 3 = 987 1234 x 8 + 4 = 9876 12345 x 8 + 5 = 98765 123456 x 8 + 6 = 987654 1234567 x 8 + 7 = 9876543 12345678 x 8 + 8 = 98765432 123456789 x 8 + 9 = 987654321然后在网上搜,顺便找到了另外一些有趣的等式:1 x 9 + 2 = 11 12 x 9 + 3 = 111 123 x 9 + 4 = 1111 1234 x 9 + 5 = 阅读全文

posted @ 2012-04-13 23:58 NULL00 阅读(856) 评论(0) 推荐(1)

POJ 1001 Exponentiation
摘要:DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems. This problem requires that you write a program to compute the exact value of Rn where R 阅读全文

posted @ 2012-04-13 16:29 NULL00 阅读(1401) 评论(0) 推荐(0)

导航