本文整理汇总了C++中bitset::_Find_next方法的典型用法代码示例。如果您正苦于以下问题:C++ bitset::_Find_next方法的具体用法?C++ bitset::_Find_next怎么用?C++ bitset::_Find_next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitset
的用法示例。
在下文中一共展示了bitset::_Find_next方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(){
init();
int n,q; cin>>n>>q;
for(int i=1;i<=n;++i)cin>>a[i];
build(root=&pool[++__ptr],1,n);
for(int z=0;z<50;++z){
for(int i=1,D=1;D<n;++i,D<<=1){
for(int j=1;j+D<=n;++j){
st[z][i][j]=max(st[z][i-1][j],st[z][i-1][j+D]);
}
}
}
for(int z=0;z<50;++z){
prepw[z][0]=1;
for(int i=1;i<30;++i){
prepw[z][i]=1ll*prepw[z][i-1]*pm[z]%mod;
}
}
while(q--){
int l,r; cin>>l>>r;
query(root,1,n,l,r);
int ans=1;
int d=r-l+1,j=0;
while(d)d>>=1,++j; --j;
// cout<<"j: "<<j<<endl;
for(int z=0;z<50;++z){
if(l==r)ans=1ll*ans*prepw[z][st[z][0][l]]%mod;
else ans=1ll*ans*prepw[z][max(st[z][j][l],st[z][j][r-(1<<j)+1])]%mod;
}
for(int pos=bp._Find_first();pos<5140;pos=bp._Find_next(pos)){
ans=1ll*ans*pm[pos]%mod;
bp[pos]=0;
}
cout<<ans<<'\n';
}
}