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...