随笔分类 -  离散化

摘要:题面 离线处理;大体思路就是将数组排序,然后对于第k次询问把不可行的数打上标记,然后从头开始寻找第k个没打标记的点的值(排序后的数组保证了它是第k小的)。实现方法:首先离散化原始数组,得到数组find[],find[i]=j表示原位置为i的数从小到大排序后的位置是j。a[]数组表示原数组,b[]数组 阅读全文
posted @ 2019-08-12 15:55 神之右大臣 阅读(240) 评论(0) 推荐(0)
摘要:对于一个数列a[],比如说:5 3 4 2 1; 我们可以将其离散化成b[],先在位置5加1,然后在位置3加1,然后在位置4加1,以此类推; 当在一个位置x加1时,b[]中已经加完的的值保证了其l<r; 那么如何统计a[l]>a[r]的个数呢? 这个个数就是sum(b[1]~b[x]); 到这里求得 阅读全文
posted @ 2019-08-01 20:48 神之右大臣 阅读(130) 评论(0) 推荐(0)