本文整理汇总了C++中SegmentTree::leftmost方法的典型用法代码示例。如果您正苦于以下问题:C++ SegmentTree::leftmost方法的具体用法?C++ SegmentTree::leftmost怎么用?C++ SegmentTree::leftmost使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SegmentTree
的用法示例。
在下文中一共展示了SegmentTree::leftmost方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
#ifdef LOCAL
freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif
while(~scanf("%s", str+1))
{
N = strlen(str+1);
tree.build(1,1,N);
scanf("%d", &Q);
for(int i=0; i<Q; i++) scanf("%d%d", &qry[i].l, &qry[i].r), qry[i].id=i;
CLR(near[0]);
for(int i=1; i<=N; i++)
{
for(int j=0; j<4; j++) near[i][j] = near[i-1][j];
for(int j=0; j<4; j++) if(str[i] == chr[j]) {near[i][j] = i; break;}
}
sort(qry, qry+Q);
int np=0;
for(int q=0; q<Q; q++)
{
printf("%d %d\n", qry[q].l, qry[q].r);
while(np<qry[q].r) expend(++np);
int res = tree.query(1,qry[q].l,qry[q].r);
printf("res: %d test:%d\n", res, tree.query(1,1,N));
int temp;
int lm = startE(temp=tree.leftmost(1,qry[q].l,qry[q].r)); // bug
printf("lm: %d lef: %d\n", lm, temp);
if(lm<qry[q].l && res) res--;
ans[qry[q].id] = res;
}
for(int q=0; q<Q; q++) printf("%d\n", ans[q]);
}
return 0;
}