ACM入门之离散化

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM入门之离散化相关的知识,希望对你有一定的参考价值。

离散化:就是说一些数据的数据范围很大,但是数据的个数很少。此时我们可以离散化一下。
将其对应的数字映射到一个较小的下标。


离散化的两种方法:

  • 排序,去重
  • 用哈希表来离散化
//好处是有序的
vector<int>a;
sort(a.begin(),a.end());//排序
a.erase(unique(a.begin(),a.end()),a.end());//去重
map<int,int>mp;
int idx;
int get(int x)

	if(mp.count(x)==0) mp[x]=idx++;
	return mp[x];

习题:
802. 区间和

以上是关于ACM入门之离散化的主要内容,如果未能解决你的问题,请参考以下文章

[hdu 4417]树状数组+离散化+离线处理

2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest B - Bring Your Own Bombs 离散化+扫描线+计算期望

HDU 1711 kmp+离散化

[HDOJ5925]Coconuts(BFS,离散化,计数)

HDU 4325 Flowers(树状数组+离散化)

2016 长春东北赛---Coconuts(离散化+DFS)