sort的cmp函数是不是只能接受严格<的
  • 板块学术版
  • 楼主FLY_lai
  • 当前回复12
  • 已保存回复12
  • 发布时间2024/9/15 08:00
  • 上次更新2024/9/15 11:45:28
查看原帖
sort的cmp函数是不是只能接受严格<的
488052
FLY_lai楼主2024/9/15 08:00

rt. 在学校模拟赛里被卡到 80pts。

struct Peo {
	ll w, s, p;
} a[N];
bool cmp(Peo a, Peo b) {
	if (a.w != b.w)
		return a.w < b.w;
	//2 3 1
	if (a.p == b.p)
		return true;
	if (a.p == 2)
		return true;
	if (b.p == 2)
		return false;
	if (a.p == 3)
		return true;
	return false;
}

上面是 80pts 代码的 cmp 函数。

int val[] = {0, 3, 1, 2};
bool cmp(Peo a, Peo b) {
	if (a.w != b.w)
		return a.w < b.w;
	return val[a.p] < val[b.p];
}

上面是 AC 代码的 cmp 函数。

int val[] = {0, 3, 1, 2};
bool cmp(Peo a, Peo b) {
	if (a.w != b.w)
		return a.w < b.w;
	return val[a.p] <= val[b.p];
}

如果 cmp 函数这么写,又变成 80pts 且有点 RE。

请问这是为什么?

2024/9/15 08:00
加载中...