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


C++ bitset::_Find_next方法代码示例

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


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