Loading docs/ds/dsu.md +6 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,12 @@ int find(int x) { } ``` 不太懂的话我们就上两张图吧   ## 合并 宴会上,一个家族的祖先突然对另一个家族说:我们两个家族交情这么好,不如合成一家好了。另一个家族也欣然接受了。 Loading docs/ds/hash.md +19 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,25 @@ struct HashTable { }; ``` 这边再为大家提供一个封装过的模板,可以像map一样用,并且较短 ```cpp struct hash_map{// 哈希表模板 struct data{long long u;int v,nex;};//前向星结构 data e[SZ<<1];//SZ是const int表示大小 int h[SZ],cnt; int hash(long long u){return u%SZ;} int & operator[](long long u){ int hu=hash(u);//获取头指针 for(int i=h[hu];i;i=e[i].nex)if(e[i].u==u)return e[i].v; return e[++cnt]=(data){u,-1,h[hu]},h[hu]=cnt,e[cnt].v; } hash_map(){cnt=0;memset(h,0,sizeof(h));} }; ``` 解释一下,hash函数是针对key的类型设计的,并且返回一个链表头指针用于查询。在这个模板中我们写了一个 $\text{(long long , int)}$ 式的hash表,并且当某个key不存在的时侯初始化对应的val成-1。hash_map()函数是在定义的时侯初始化用的。 ## 例题 [\[JLOI2011\]不重复数字](https://www.lydsy.com/JudgeOnline/problem.php?id=2761) docs/ds/images/dsu1.png 0 → 100644 +19.9 KiB Loading image diff... docs/ds/images/dsu2.png 0 → 100644 +24.4 KiB Loading image diff... Loading
docs/ds/dsu.md +6 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,12 @@ int find(int x) { } ``` 不太懂的话我们就上两张图吧   ## 合并 宴会上,一个家族的祖先突然对另一个家族说:我们两个家族交情这么好,不如合成一家好了。另一个家族也欣然接受了。 Loading
docs/ds/hash.md +19 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,25 @@ struct HashTable { }; ``` 这边再为大家提供一个封装过的模板,可以像map一样用,并且较短 ```cpp struct hash_map{// 哈希表模板 struct data{long long u;int v,nex;};//前向星结构 data e[SZ<<1];//SZ是const int表示大小 int h[SZ],cnt; int hash(long long u){return u%SZ;} int & operator[](long long u){ int hu=hash(u);//获取头指针 for(int i=h[hu];i;i=e[i].nex)if(e[i].u==u)return e[i].v; return e[++cnt]=(data){u,-1,h[hu]},h[hu]=cnt,e[cnt].v; } hash_map(){cnt=0;memset(h,0,sizeof(h));} }; ``` 解释一下,hash函数是针对key的类型设计的,并且返回一个链表头指针用于查询。在这个模板中我们写了一个 $\text{(long long , int)}$ 式的hash表,并且当某个key不存在的时侯初始化对应的val成-1。hash_map()函数是在定义的时侯初始化用的。 ## 例题 [\[JLOI2011\]不重复数字](https://www.lydsy.com/JudgeOnline/problem.php?id=2761)