当前位置: 首页>>代码示例>>C++>>正文


C++ SegmentTree::leftmost方法代码示例

本文整理汇总了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;
}
开发者ID:XingMo,项目名称:ACM_Code,代码行数:37,代码来源:As_Easy_As_Possible.cpp


注:本文中的SegmentTree::leftmost方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。