数据结构-哈希表
Maxwei_wzj
AFO
展开
-
【51Nod1244】莫比乌斯函数之和-杜教筛+哈希表
【51Nod1244】莫比乌斯函数之和-杜教筛+哈希表原创 2017-06-16 14:33:06 · 705 阅读 · 0 评论 -
【51Nod1239】欧拉函数之和-杜教筛+哈希表
【51Nod1239】欧拉函数之和-杜教筛+哈希表原创 2017-06-16 17:16:28 · 598 阅读 · 0 评论 -
【51Nod1227】平均最小公倍数-杜教筛
【51Nod1227】平均最小公倍数-杜教筛原创 2017-06-18 12:10:41 · 634 阅读 · 0 评论 -
【POJ2417】Discrete Logging-BSGS算法
测试地址:Discrete Logging 题目大意:给定质数PPP和小于PPP的两个正整数B,NB,NB,N,求满足BLmodP=NBLmodP=NB^L\mod P=N的最小的非负整数LLL。 做法:本题需要用到BSGS算法。 由费马小定理我们得知,最小的答案LLL一定满足0≤L<P0≤L<P0\le LO(P)O(P)O(P)的,并不能承受。 我们令L=i×m+jL=i×...原创 2018-02-25 20:58:25 · 208 阅读 · 0 评论 -
【POJ3243】Clever Y-扩展BSGS算法
测试地址:Clever Y 题目大意:求关于xxx的方程AxmodC=BAxmodC=BA^x\mod C=B的最小非负整数解。 做法:本题需要用到扩展BSGS算法。 这个东西我觉得这篇文章讲得很清楚了,我自己来说可能讲得不比原来的题解清楚,所以这里就直接贴出链接:点我。 以下是本人代码:#include <bits/stdc++.h>#define ll long ...原创 2018-02-25 22:45:26 · 394 阅读 · 0 评论 -
【BZOJ3122】随机数生成器(SDOI2013)-BSGS+矩阵乘法
测试地址:随机数生成器 做法:本题需要用到BSGS+矩阵乘法。 首先看到线性递推式,就想到用矩阵乘法来做,那么题目要求的就是关于xxx的方程: (a0b1)x(x11)=(t1)(ab01)x(x11)=(t1)\begin{pmatrix}a&b\\ 0&1\end{pmatrix}^x\begin{pmatrix}x_1\\1\end{pmatrix}=\begin{pmatrix}t...原创 2018-04-01 17:07:10 · 211 阅读 · 0 评论 -
【BZOJ4943】蚯蚓排队(NOI2017)-链表+字符串哈希
测试地址:蚯蚓排队 做法:本题需要用到链表+字符串哈希。 因为kkk很小,所以用链表维护队列的形态,每次连接或断开暴力添加新增的子串信息即可,用字符串哈希来加速字符串的匹配即可。 根据一些神奇的复杂度分析,时间复杂度应该是O(能过)O(能过)O(能过),但是因为我太菜,最后一个点TLE+WA(分点测试TLE,BZOJ上WA),实在是没有办法了,先丢在这里吧…… 以下是本人代码:#i...原创 2018-05-10 21:46:12 · 386 阅读 · 0 评论 -
【BZOJ3899】仙人掌树的同构-圆方树+树上哈希+DP
测试地址:仙人掌树的同构 题目大意:定义一棵仙人掌树为,每个点最多在一个环中的无向图,且图中的环都是简单环。问有多少种点的置换,使得置换后的图和原图相同。n≤1000n≤1000n\le 1000。 做法:本题需要用到圆方树+树上哈希+DP。 首先显然的是,仙人掌同构就等同于圆方树同构。不过这题的仙人掌定义和一般的仙人掌有些不同:是每个点最多在一个环中,而不是每条边。又因为没有重边,所以没有...原创 2018-07-09 18:25:48 · 611 阅读 · 0 评论 -
【BZOJ4754】独特的树叶(JSOI2016)-树同构:树上哈希
测试地址:独特的树叶 做法:本题需要用到树同构:树上哈希。 问题的关键是如何快速判断两棵树同构。要想到一个确定的算法是很难的,因此我们考虑哈希。 考虑这样一种哈希方法:类似树形DP,对于每个点,先递归求解它的儿子的子树,然后把所有儿子按哈希值排序,然后在这个序列末尾加上一个子树大小的数值,然后把这个序列按字符串哈希的方式求出哈希值,这就是当前子树的哈希值。这样我们可以O(nlogn)O(nl...原创 2018-07-05 19:27:40 · 457 阅读 · 0 评论