社区讨论

求助cmp函数导致的神秘RE

学术版参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mhj26f7v
此快照首次捕获于
2025/11/03 19:30
4 个月前
此快照最后确认于
2025/11/03 19:30
4 个月前
查看原帖
CPP
struct node {
	double a, b;
} p[maxn];

bool cmp(node x, node y) {
	if (x.b == -1) {
		return y.b == x.b ? x.a < y.a : y.b > x.b;
	}
	if (y.b == -1) {
		return x.b == y.b ? x.a < y.a : x.b > y.b; 
	}
	return x.b == y.b ? x.a < y.a : x.b < y.b;
}
原题为8162,这个排序函数会导致神秘RE?改了以后就能过掉。 能过得排序函数:
CPP
bool cmp(node x, node y) {
	if (x.b != -1 && y.b != -1) {
		if (x.b == y.b) {
			return x.a < y.a;
		}
		return x.b < y.b;
	} else if (x.b == -1 && y.b == -1) {
		return x.a < y.a;
	} else {
		return x.b > y.b;
	}
}

回复

7 条回复,欢迎继续交流。

正在加载回复...