蒟蒻求助
  • 板块学术版
  • 楼主「 」
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/10/28 19:17
  • 上次更新2023/11/5 09:39:38
查看原帖
蒟蒻求助
72468
「 」楼主2020/10/28 19:17

题目链接:E题

本蒟蒻在这道题中使用了重载运算符和 STL\text{STL} 来实现堆,但是由于优先队列不可随时删除,所以蒟蒻自己实现的时候使用了 set\text{set}

但是我的一名同学在学习我的题解的时候用了和我一样的重载运算符,却使用因优先队列而 TLE\text{TLE} 了,但换成 set\text{set} 就过了。

在这里询问一下各位大佬原因:是因为重载运算符没有满足严格弱序导致的问题还是另有原因。

谢谢!

bool operator < (const Data a,const Data b)
{
	int aa=(a.x+a.y>=0);
	int bb=(b.x+b.y>=0);
	if(aa!=bb) return aa<bb;
	if(aa) return a.x<b.x;
	return a.y<b.y;
}
2020/10/28 19:17
加载中...