HASH函式類題目

2021-06-20 05:47:36 字數 1886 閱讀 3028

hdu 1264

這個用不到神馬hash,直接暴力就ok了,不過要注意輸入的頂點問題,處理一下矩形對角線的頂點。

# include # include # include int visit[110][110];

int main()

}else

}return 0;

}

hdu 1496

這個注意到資料的範圍[-100,100],但是後面的多項式中是x^2,所以資料的正負對其值沒有影響。

將多項式分為2段,一段為a*x1*x1+b*x2*x2,另一段為c*x3*x3+d*x4*x4,然後利用hash

由於xi的取值有正和負兩種,所以共有2^4種。

# include # include # include int hash1[1000005];

int hash2[1000005];

int main()

memset(hash1,0,sizeof(hash1));

memset(hash2,0,sizeof(hash2));

for(i = 1;i <= 100;i ++)

}ans = 0;

for(i = 1;i <= 100;i ++)

}printf("%d\n",16*ans);

}return 0;

}

hdu 2522

判斷是否曾經出現過該餘數。

#include#includechar u[100001];

int main()

memset(u,1,b + 1);

a = 1;

u[1] = u[0] = 0;

printf("0.");

dowhile(u[a]);

putchar('\n');

}return 0;

}

hdu 2600

nlgn版本

# include # include # include typedef struct node

node;

node arr[220];

char ch[50];

int n;

int cmp(const void *a,const void *b)

int main()

qsort(arr,2*n,sizeof(node),cmp);

max = arr[0].num - 1;

if(arr[2*n-1].num < q)

printf("%d\n",q);

else

}if(max >= p) printf("%d\n",max);

else puts("badly!");

} }return 0;

}

n^2版本

# include # include # include char name[50];

int large[110][2];

int input[110][2];

int main()

max = -6000001;

for(i = 0;i < n;i ++)

if(flag0 == 0 && flag1 == 0)

else if(flag0 == 0)

else if(flag1 == 0)

}if(max >= p && max <= q)

printf("%d\n",max);

else puts("badly!");

}return 0;

}

Hash函式和Hash衝突

2.rehash 3.鍊錶法 4.建立公共溢位區 一 簡介 將任意長度的數值以某個對映規則對映為固定長度的數值,這個過程稱為hash,而這個對映規則被稱為hash函式,而對這個key value進行儲存的資料結構被稱為hash表。由於通過key的hash對映直接得到了記憶體位址,所以hash查詢的時...

Hash學習(2) Hash函式

乙個好的hash函式一般具有以下兩個特點 第一,速度快,第二,能夠將雜湊鍵均勻的分布在整個表中,保證不會產生聚集。通常,hash函式具有如下形式 hash key calculated key tablesize 上一節主要討論了一下tablesize,為了提高雜湊鍵的離散程度,tablesize通...

各種hash 函式

常用的字串hash函式還有elfhash,aphash等等,都是十分簡單有效的方法。這些函式使用位運算使得每乙個字元都對最後的函式值產生影響。另外還有以md5和sha1為代表的雜湊函式,這些函式幾乎不可能找到碰撞。常用字串雜湊函式有 bkdrhash,aphash,djbhash,jshash,rs...