- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 HDOJ 1043 Eight
用了五天左右做了一下八数码的问题,所谓的八重境界也就是实现了四种而已,但是心里已经感觉实在坐不下去了,就这样总结一下吧。八数码问题使用了两点辅助工具。第一是曼哈顿距离,用来作为A*的h函数以及IDA*的剪枝。第二是康拓展开,用来标识已经遍历过的状态。第三是逆序数,作为问题的剪枝。
2011-09-21 15:10:38 1388
原创 康托展开
公式X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,ai为当前未出现的数字中是排在第几个(从0开始)。因此0X便是整个全排列中第X大的数。用途显然,n位(0~n-1)全排列后,其康托展开唯一且最大约为n!,因此可以由更小的空间来储存这些排列。由公式可将X逆推出对应的全排列。 两种实现正向
2011-09-21 14:27:13 2096
原创 HDOJ 1011 Starship Troopers
树上的动态规划第一次做,很纠结也很混乱。其实回过头开一下,也就那么样,过不去的不是自己的知识,只是自己的心理关。嗯,今天抽空整理一下动态规划的思路。 动态规划适用于最优化问题,同时最优化问题需要具备两个要素:最有子结构和重叠子问题。①在寻找最有子结构的时候,可以
2011-09-20 23:33:56 829
原创 HDOJ 1007 Quoit Design
题目不难,按照最近点对的算法一步一步来就可以了,没什么陷阱,所以一次AC。另外在比较距离时做了小小的优化,只在需要的时候开平方,而不是直接返回平方根。最近点对问题,参考:http://blog.csdn.net/xinhanggebuguake/article/details/6
2011-09-19 12:06:16 1264
原创 最近点对问题
最近点对问题定义:已知上m个点的集合,找出对接近的一对点。 在二维空间里,可用分治法求解最近点对问题。预处理:分别根据点的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y中的点就是S中的点。 情况(1):点数小于等于三时:情况(2):点数大于三时: 首先划分集合S为SL和SR,使得SL中的每一个点位于SR中每一个点的左边,并且SL和SR中点数相同
2011-09-19 11:56:12 1163
原创 HDOJ 1829 A Bug's Life
刚开始的思路好像不是并查集来着,后来想了很久还是没好的做法。最后搜了一下大致的思想便开始做了。一切搞定之后,提交WA,后来用以下两组数据测试了一下 4 3 4 31 2 或者 1 23 4
2011-09-19 00:12:54 840
原创 HDOJ 1856 More is better
此题与典型的并查集不同的是,此题要求输出每棵树上节点的个数,所以要考虑的是如何处理节点个数的问题。最后逐个遍历相对于10000000个数据来说显然不是个好方法。仍然是牺牲空间换时间的思想,在‘并’和‘查’的同时将树中的节点个数记录到父节点中。由于数据量较大,所以考虑使用路径压缩。
2011-09-18 10:35:38 817
原创 glViewPort,glOrtho与视见区,修剪区间
图(1)样例:正方形图像图(2)正方形在方形区域中的显示图(3)正方形在矩形区域中的显示假设 若从样例图像按(W1,H1)的长宽进行取样,即修剪空间所使用为 void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far
2011-09-18 10:03:53 1883
一款简单的桌面便笺仅供学习交流
2010-10-07
LibGeoTiff(处理tiff文件的开源库)
2010-07-24
tiff3.8.2(Tiff图像处理库最新版)
2010-07-24
C++良好的编程风格
2010-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人