本文整理汇总了C++中IntervalTree::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ IntervalTree::Add方法的具体用法?C++ IntervalTree::Add怎么用?C++ IntervalTree::Add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IntervalTree
的用法示例。
在下文中一共展示了IntervalTree::Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: connect
void connect(int A, int B)
{
City *paA = cities[A].getPa(), *paB = cities[B].getPa();
if(paA == paB) return;
assert(paB->minY <= paB->maxY);
if(paB->minY != paB->maxY)
{
tree1.Add(-1, paB->minY, paB->maxY - 1);
tree2.Add(-paB->size, paB->minY, paB->maxY - 1);
}
if(paA->minY != paA->maxY)
{
tree1.Add(-1, paA->minY, paA->maxY - 1);
tree2.Add(-paA->size, paA->minY, paA->maxY - 1);
}
paA->size += paB->size;
paB->ppa = paA;
paA->minY = min(paA->minY, paB->minY);
paA->maxY = max(paA->maxY, paB->maxY);
assert(paA->minY <= paA->maxY);
if(paA->minY != paA->maxY)
{
tree1.Add(1, paA->minY, paA->maxY - 1);
tree2.Add(paA->size, paA->minY, paA->maxY - 1);
}
}