一些要注意的问题
关于重载运算符
重载运算符时,我们用了这种方法:
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]];
时间复杂度
关于大质数(for Hash)
1e9+9 1e9+1011 1e18+9
关于平衡树
相同的值一定要放在相同的节点,不然旋转时会出问题!!!
spfa中是依靠不断松弛而得到结果的,访问到一个点,这个点不一定是最优值
但是dij不一样,当你访问到他的时候,他就是最佳答案了
关于sort
sort是处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现