Greater and Greater

G. Greater and Greater

参考:2020牛客多校第二场 G题Greater and Greater(bitset)

要仔细观察规律,当看不出规律的时候,可以试着排序一下,看看能不能进行优化。

bitset 运算的复杂度为\(O(n/32)\),可以加快运算速度

// Created by CAD on 2020/7/16.
#include <bits/stdc++.h>

#define fi first
#define se second
#define pii pair<int,int>
using namespace std;
const int maxn=1e5+5e4+5;
const int maxm=4e4+5;
pii a[maxn],b[maxm];
bitset<maxn> ans,t;

int main(){
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;++i)   cin>>a[i].fi,a[i].se=i;
    for(int i=1;i<=m;++i)   cin>>b[i].fi,b[i].se=i;
    sort(a+1,a+n+1),sort(b+1,b+m+1);
    ans.set();
    for(int i=m,j=n;i>=1;--i){
        while(j>=1&&a[j].fi>=b[i].fi)
            t.set(a[j].se),j--;
        ans&=t>>(b[i].se-1);
    }
    cout<<ans.count()<<endl;
}
posted @ 2020-07-18 09:29  caoanda  阅读(171)  评论(0编辑  收藏  举报