一些要注意的问题

 


关于重载运算符

重载运算符时,我们用了这种方法:

bool operator < (const node &x)const
{
	return x.v<v;
}

实际上等同于这样

bool operator < (const node &x)const
{
	return v > x.v;
}

也能写成这样的形式

friend const bool operator <(node x,node y){
    return x.v>y.v;
}

我们会发现,这实际上是反过来的,有人给出的解释是这样的:

c++ STL 里面都是重载小于号,然后 STL 的优先队列默认是大根堆而不是小根堆,所以只能反着重载运算符

这个地方是要注意的

其实我们可以这样写:

friend const bool operator <(node y,node x){
    return x.v<y.v;
}

一个指针占的空间 = 一个 long long 类型占的空间 = 8B。


我们可以以这种形式开数组

	a=new int[n+5];

关于离散化

map<int,int>mpa;
cin>>n;
for(int i=1;i<=n;i++){
	cin>>a[i];
	mpa[a[i]]=0;
}
for(map<int,int>::iterator it=mpa.begin();it!=mpa.end();it++)
	it->second=++lena;
for(int i=1;i<=n;i++)
	a[i]=mpa[a[i]];

时间复杂度O(nlogn)


关于大质数(for Hash)

1e9+9 1e9+1011 1e18+9


关于平衡树

相同的值一定要放在相同的节点,不然旋转时会出问题!!!


spfa中是依靠不断松弛而得到结果的,访问到一个点,这个点不一定是最优值

但是dij不一样,当你访问到他的时候,他就是最佳答案了

关于sort

sort是处理[l,r)间的排序的,因此一二项分别是起始位置和终止位置的下一项

posted @   Ayaka_T  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示