inline void hash_init(){
Hash.clear();
for (int i=1;i<=n;i++)
{
Hash.pb(a[i].first);
Hash.pb(a[i].first+1);
Hash.pb(a[i].second);
Hash.pb(a[i].second+1);
}
sort(Hash.begin(),Hash.end());
Hash.erase(unique(Hash.begin(),Hash.end()),Hash.end());//去重*
}
inline void hash_main(){
hash_init();
for (int i=1;i<=n;i++)
{
b[i].first=2*(lower_bound(Hash.begin(),Hash.end(),a[i].first)-Hash.begin()+1)-1;
b[i].second=2*(lower_bound(Hash.begin(),Hash.end(),a[i].second)-Hash.begin()+1)-1;
//离散*****
if (b[i].first>hashsize) hashsize=b[i].first;
if (b[i].second>hashsize) hashsize=b[i].second;
}
}
Hash 线段树离散化
最新推荐文章于 2021-07-14 21:01:54 发布