哈希
文章平均质量分 73
「已注销」
SYSU
展开
-
POJ 3349 Snowflake Snow Snowflakes(HASH)
#include#include#includeusing namespace std;const int MAXHASH = 100003;bool vis[MAXHASH];bool ok;int state[MAXHASH][6];//存放雪花形状的状态int head[MAXHASH],next[MAXHASH];int n;unsigned int hash(int st[])//求和取模的哈希函数{ unsigned int h = 0; fo原创 2010-08-04 12:47:00 · 980 阅读 · 2 评论 -
POJ 3274 Gold Balanced Lineup(HASH)
//HASH//确实想不到HASH可以用在这么地方,需要把问题进行转化,看了别人解题报告才会写的//题意是求一个最长的范围,在这个范围内各种FEATRUE出现的次数相同//很直接想到将他们转化成位然后存起来,然后每位从1到N累加,但是规模还是10W,要找这么大规模中2个数相减他们的差是相同的,并且距离最远的,是O(n^2)//对于SAMPLE的数据的处理//前导零 000 000//7---->111---->111---->000//6---->110--原创 2010-08-05 11:23:00 · 2880 阅读 · 2 评论 -
POJ 1971 Parallelogram Counting(枚举+HASH)
//枚举 + HASH//和2002很像,这次是找平行四边形,规模1000,因此只能采用O(N^2)//一开始我是想到枚举3个点确定2条边,由这2条边确定第4的点,再用HASH判断是否存在,但是O(n^3)绝对TLE//再想了一下,发现可以枚举对角线,进而确定中点,2条直线如果中点相同,那么必定确定一个平行四边形//根据这个性质来对边的中点值进行HASH就可以了,发现一个中点值就插入,并计数,最后答案就是这些计数的总和//效率的关键是HASH函数的设计,我用折叠法的HASH随便搞了一通,原创 2010-08-06 12:28:00 · 2165 阅读 · 4 评论 -
POJ 1840 Eqs(枚举+HASH)
//枚举 + HASH//第一个优化,先预处理立方,先打个表//第二个优化,拆分枚举,先枚举X1,X2,再枚举X3,X4,X5,这样将复杂度降为O(100^3)//第三个优化,搜索剪枝,枚举X1,X2的时候记录结果的最大最小值,当在枚举X3,X4,X5的时候如果超过这个范围则跳出//在判重的时候使用HASH,简单的取模HASH函数即可//处理冲突采用拉链法//344MS#include#define MAXHASH 916549#define NEG 12500000原创 2010-08-05 20:25:00 · 879 阅读 · 0 评论 -
POJ 2503 Babelfish(HASH)
//字典HASH简单应用,这题也可用Trie做//学会了SSCANF的使用,难点在于处理数据的读入#includeusing namespace std;const int MAXHASH = 100003;int head[MAXHASH],next[MAXHASH];int m;struct Dic{ char english[11]; char foreign[11];}dic[MAXHASH];int hash(char *str)//ELFHash函原创 2010-08-06 01:38:00 · 991 阅读 · 0 评论