E. Iva & Pav
题解
已知l,则r越大,f(l,r) 越小,因此具有单调性,我们可以在logn的时间里找最佳r,可是如何在
由于与具有重叠不变性,所以我们可以预处理每
code
#include<bits/stdc++.h>
using namespace std;
int k;
int st[25][200005];
int a[200005];
bool check(int l,int r)
{
int len=(r-l+1);
int lg=log2(len);
int ans=st[lg][l]&st[lg][r-(1<<lg)+1];
return ans>=k;
}
int main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
st[0][i]=a[i];
}
for(int i=1;(1<<i)<=n;i++)
{
for(int j=1;j+(1<<i)-1<=n;j++)
{
st[i][j]=st[i-1][j]&st[i-1][j+(1<<(i-1))];
}
}
int q;
cin>>q;
while(q--)
{
int l;
cin>>l>>k;
int x=l-1,y=n+1;
while(x+1<y)
{
int mid=(x+y)/2;
if(check(l,mid)) x=mid;
else y=mid;
}
if(x!=l-1) cout<<x<<" ";
else cout<<"-1 ";
}
cout<<'\n';
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程