首页 > 其他分享 >关于离散化+Trick

关于离散化+Trick

时间:2024-09-29 10:49:53浏览次数:7  
标签:离散 int lsh Trick blo 关于 数组 连续

离散化

干嘛用的不多说。

你不会去问度娘吗

板板

经常忘又懒得找。遂写一模板暂存。

//a为原数组,b为a的副本
void version1(){
	sort(b+1,b+1+n);
	int siz=unique(b+1,b+1+n)-b-1;

	for(int i=1,k;i<=n;i++)
		a[i]=lower_bound(b+1,b+1+siz,a[i])-b-1;
}


unordered_map<int,int> mp;
void version2(){
	int cnt=0;

	for(int i=1;i<=n;i++){
		if(mp.find(a[i])==mp.end())
			mp[a[i]]=++cnt;
		
		a[i]=mp[a[i]];
	}
}

Trick

直接离散化会导致本不连续的值连续,有两种解决方法。

法一:

离散化的时候把每个值+1放到离散化数组里,这样原本不连续的数离散化后也不连续。

法二:

这种方法常数会小一些。

记录一下离散化数组中每个数是否和前一个数一样,如果离散化用的数组叫做 \(lsh\),令 \(dif_i=[lsh_i=lsh_{i-1}]\) ,求出 \(dif\) 的前缀和 \(blo_i\),那么 \(blo_i\) 相同的数就是在一个连续块里的。

令 \(f_i=[blo_{a_i}=blo_{a_{i-1}}]\)(也就是这一位是否和前一位在一个连续块里),再用一个树状数组维护 \(f\) 的前缀和,就可以快速查询一个区间内的所有值是否都在同一个连续块里。

内心OS:感觉没人会为了离散化而单独写一个树状数组吧...

标签:离散,int,lsh,Trick,blo,关于,数组,连续
From: https://www.cnblogs.com/Elaina-0/p/18439008

相关文章

  • 关于聚类算法的一份介绍
    在这篇文章中我将介绍无监督算法中“聚类”部分的知识,其中关于K均值聚类、层次聚类、密度聚类部分我将各附上一份实际运用的代码,而其余的像学习向量量化、高斯混合聚类部分则只是简单介绍下概念。一、关于聚类首先我先简单介绍下聚类算法有关的东西。1.1聚类任务我们知道......
  • 关于vscode无法连接拓展商店问题
    如果你vscode试过了以下的解决办法且:1.可以ping通marketplace.visualstudio.com2.其他的方法你都用过了没用3.host已经改完并重启了。4.poxy已经保存了且IP也写了没用5.也在设置里修改http和https了那你可以看一下我的这个方法,是楼主自己找到的1.可以先在VScoude当中先......
  • 关于PHP方面需要掌握的一些基础语法
    成长路上不孤单......
  • 关于前端框架的对比和选择
    成长路上不孤单......
  • 关于算法复杂度
    1.复杂度的概念算法在编写成可执⾏程序后,运⾏时需要耗费时间资源和空间(内存)资源。因此衡量⼀个算法的好坏,⼀般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。    时间复杂度主要衡量⼀个算法的运⾏快慢,⽽空间复杂度主要衡量⼀个算法运⾏所......
  • T-SQL——关于四舍五入、向上取整、向下取整
    ------------------------------------------------------------------------关于四舍五入--使用ROUND函数四舍五入,但是保留了原始的位数,用0补齐SELECTROUND(2.3363,2);--2.3400SELECTCAST(ROUND(2.3363,2)ASDECIMAL(10,2));--2.34---保留两位小数,使用CAST转为DEC......
  • 关于RocketMQ的顺序消息
     在RocketMQ中,实现顺序消息的确需要一些特定的配置和注意事项。1.**OrderProducerBean**:使用OrderProducerBean可以保证消息的顺序发送。它会将消息发送到同一个队列中,从而保证顺序。然而,确保顺序的前提是所有相关的消息都应该使用相同的键(key)进行发送,以确保它们被路......
  • 关于多圈绝对值编码器越0点数据的连续处理
    关于多圈绝对值编码器越0点数据的连续处理说明处理办法总结说明本次分享指在分享思路;此次演示案例为一款rs485通讯的多圈绝对值编码器,接收的数据格式为01030400000000FA33(01为从机地址,03为功能码,04为数据字节长度,00000000为测量数据,FA33为校验码)测量数......
  • MapBox Android版开发 6 关于Logo
    MapBoxAndroid版开发6关于LogoLogo的显示查看源码及思路(Logo)第一步第二步隐藏Logo示例查看源码及思路(Info)第一步第二步隐藏Logo和Info示例看到有网友留言问如何移除Logo,今天看了下V9源码,发现MapBox提供了禁用Logo的功能。先简单说下思路部分源码,最后是示例。L......
  • 关于kratos proto 生成pb.go的一些报错,问题
    有诸如这类报错go:ai-ws-session-service/cmd/ai-ws-session-serviceimportsgithub.com/aliyun-sls/opentelemetry-go-provider-sls/providerimportsgo.opentelemetry.io/otel/metric/global:modulego.opentelemetry.io/otel/metric@latestfound(v1.30.0),butdoesnot......