2012年2月18日
摘要: POJ_1873 由于树木比较少,可以枚举砍树的决策,然后计算砍掉的树木的长度是否比剩下的树木的凸包的周长要长,每次计算之后按题意更新最优解即可。 在枚举的时候还可以应用一个剪枝,就是如果当前砍树损失的价值比记录的最小价值要大的话,就可以直接枚举下一种情况了,而不必再去花时间计算凸包和凸包的周长了,这样可以节省很多时间。#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#define MAXD 20#define zero 1e-8#define INF 0x 阅读全文
posted @ 2012-02-18 22:03 Staginner 阅读(265) 评论(0) 推荐(0) 编辑
摘要: POJ_1228 首先说明几点,第一,这个题目用long long int就可以了,不必像discuss说的那样非要用double不可,long long int如果都超了的话,用double计算出的精度也就值得怀疑了,第二,这个题目应该没有所有点都共线的数据,因为我不加那个判断也可以AC,但根据题意来看,应该还是要判断一下的。 这个题的题意感觉太费解了,后来折腾来折腾去我就直接按别人理解的去做了:判断凸包上的每条边至少包含3个点。 首先显然n<6是不可能的,因为最后需要是一个凸多边形,那么至少有3个顶点,再加上每条边上的1个点,一共是6个点。 之后,一个思路就是把这些点的逆时针序或者顺 阅读全文
posted @ 2012-02-18 17:33 Staginner 阅读(338) 评论(1) 推荐(0) 编辑