摘要: 题目:http://poj.org/problem?id=1269题目大意:给出四个点确定两条直线。如果是一条线输出“LINE”,如果平行输出“NONE”, 如果有交点输出交点坐标。思路:注意是直线,不是线段啊。用两点式推出两条直线方程 : (y1 - y2)x + (x2 - x1)y = x2y1 - x1y2; (y3 - y4)x + (x4 - x3)y = x4y3 - x3y4; 又由Cramer法则: a1x + b1y = c1; a2x + b2y = c2; D = a1b2 - a2b1; D1 = c1b2 - c2b1; D2 = a1c2 - a2c1; D != 阅读全文
posted @ 2011-07-20 11:01 cloehui 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=2231个人认为这是一道水题……先输入N表示有N头牛,接下来的N个数是各个牛所在的位置。如果一头牛对另一头牛Moo,那么Moo数就是1号牛所在位置i与2号牛所在位置j的差值,又因为1号牛Moo过去,所以2号牛也要Moo回来,于是Moo数就变为2倍了。1号牛要对剩余所有(N-1)头牛都Moo,如果我们将牛按顺序排好,每头牛i只对它身后的(N-i)头牛Moo,意思是,我们只考虑某头牛Moo出去的,而不考虑别的牛对它Moo回来的,那么它也不对在它前面的牛Moo,那么这就是一个简单的数学问题,每头牛i只对身后的(N-i)头牛Moo。因为所有牛还 阅读全文
posted @ 2011-07-20 10:57 cloehui 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=1088据说是一道很经典的dp入门题我的做法是用一个二维数组储存原始数据,然后对每个点调用一个递归函数,寻找周围四个方向的最长路径,加1作为这个点的最长路径。递归的方法是,对周围的四个点,如果点在地图内且高度下降,再找这个点的四个方向上的点,于是当达到边界或是某点已经被计算过,递归结束,返回最长路径值。所以这里还用到了记忆化搜索,对于每个点,都要记录这个点的最长路径值,这样就避免重复计算,是一种用空间换时间的做法。 对地图中的每个点都要调用子函数递归计算该点可以达到的路径最大值。然后比较出一个最大的作为该地图的最长路径。 要注意地图边界 阅读全文
posted @ 2011-07-20 10:51 cloehui 阅读(863) 评论(0) 推荐(0) 编辑