sort

vector用法

将b[i]里的每个数在b[i]内进行快排

vector<int>b[5211314];
for (int i = 1; i <= pos[n]; ++ i) {
sort(b[i].begin(), b[i].end());
}

结构体+cmp用法

以lift为第一关键字,right为第二关键字,time为第三关键字进行的升序排列

struct ASK {
int lift, right, time;
}ask[5211314];
inline bool cmp(ASK a, ASK b) {
if (a.lift > b.lift) return false;
else if (a.right > b.right) return false;
else if (a.time > b.time) return false;
return true;
}
//返回值为假则交换a,b的位置
//返回值为真则保留a,b的位置
sort(ask + 1, ask + 1 + ask_num, cmp);

但是不知道为什么(别问怎么知道的,亲身经历呜呜呜),上一种方法常数很大,会导致一些题目TLE,而下面的方法则会快很多
详情可见Luogu P1903 [国家集训队] 数颜色 / 维护队列

struct ASK {
int lift, right, time;
}ask[5211314];
inline bool cmp(const ASK &a, const ASK &b) {
if (a.lift != b.lift) return a.lift < b.lift;
if (a.right != b.right) return a.right < b.right;
return a.time < b.time;
}
//返回值为假则交换a,b的位置
//返回值为真则保留a,b的位置
sort(ask + 1, ask + 1 + ask_num, cmp);
posted @   觉清风  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示