struct segment
{
point l, r;
int indx;
double endVal() const
{
if( l.x == r.x ) return l.y;
return l.y + 1.0 * ( r.y - l.y ) * 1.0 * ( pos - l.x ) / ( r.x - l.x );
}
bool operator < ( const segment & other ) const
{
return indx != other.indx && endVal() < other.endVal();
}
bool operator == ( const segment & other ) const
{
return indx == other.indx;
}
}seg[MAXN];
很多代码的segment类内部的operator<函数里面,都有一个endval的函数来动态计算当前的y轴坐标。。
但是set也不会因此重新排序的吧(cpp-reference没提到set会动态更新呀,而且本来排序的指标就是要const)
如果这里有点问题的话,题解的代码还会是正确的吗?还是说只是数据太水了?洛谷题解是官方的题解吗?
呜呜呜我太菜了,来点巨佬浇浇。