return a.l / len == b.l / len ? a.r / len == b.r / len ? a.t < b.t : a.r < b.r : a.l < b.l;
- 离散化其实是可以用 map 。我们并不关心我们的大小相对关系,我们关系心的是我们出现的次数。也就是说,我们直接把他们的大小赋值为 1,2,3...... 这样就可以了。用 map 记录一下就可以了。我们用 map 相当于就只有读入时用到,复杂度是 O(nlogn+nn) ,确实会劣,但是好写。
就像这个样子
a[i]=read();
if(ma[a[i]]) a[i]=ma[a[i]];
else ma[a[i]]=(++nt),a[i]=nt;