日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

luogu P3293 [SCOI2016]美味

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 luogu P3293 [SCOI2016]美味 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

異或最大值應該是要用\(trie\)樹,從高位往低位貪心,雖然這里詢問區間的數都要加上\(x\),但是仍然可以利用這個思想

從高往低位考慮,我們要找一個加上\(x\)后當前二進制位\(j\)不等于\(b\)的當前位的數,假設\(b\)當前位為0,我們就要現在找個數加上\(x\)后當前位\(j\)為1,記之前選出的數為\(ans\),那么我們就要找一個在\([ans+(1<<j)-x,ans+(1<<j)-(1<<j)-1-x]\)區間內的數;如果\(b\)當前位為1,那么取值范圍為\([ans-x,ans-(1<<j)-1-x]\).如果有這個數,那么\(ans\)當前位\(j\)就可以等于\(b\)當前位\(xor\ 1\),否則就反過來

這個操作可以用主席樹查詢某區間的數出現次數的操作實現

#include<bits/stdc++.h> #define LL long long #define il inline #define re register #define db double #define eps (1e-7)using namespace std; const int N=500000+10; const LL inf=1ll<<45; il LL rd() {re LL x=0,w=1;re char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w; }#define mid ((l+r)>>1)int s[N*20],ch[N*20][2],rt[N],tt; int n,m,kk,L,R,a[N]; il void inst(int p) {rt[p]=++tt;int o1=rt[p],o2=rt[p-1],l=0,r=n;s[o1]=s[o2]+1;do{if(a[p]<=mid){ch[o1][0]=++tt,ch[o1][1]=ch[o2][1];o1=ch[o1][0],o2=ch[o2][0],r=mid;}else{ch[o1][0]=ch[o2][0],ch[o1][1]=++tt;o1=ch[o1][1],o2=ch[o2][1],l=mid+1;}s[o1]=s[o2]+1;}while(l<r); } int quer(int o1,int o2,int l,int r,int ll,int rr) {if(ll<=l&&r<=rr) return s[o1]-s[o2];int an=0;if(ll<=mid) an+=quer(ch[o1][0],ch[o2][0],l,mid,ll,rr);if(rr>mid) an+=quer(ch[o1][1],ch[o2][1],mid+1,r,ll,rr);return an; } bool ok(int l,int r,int ll,int rr) {ll=max(ll,0),rr=min(rr,n);return ll<=rr?quer(rt[r],rt[l-1],0,n,ll,rr):0; } int q;int main() {///no O2m=rd(),q=rd();for(int i=1;i<=m;i++) n=max(n,a[i]=rd());for(int i=1;i<=m;i++) inst(i);while(q--){int b=rd(),x=rd(),ll=rd(),rr=rd(),ans=0;for(int i=17;i>=0;i--){int nw=ans|(((b>>i&1)^1)<<i);if(ok(ll,rr,nw-x,nw+(1<<i)-1-x)) ans=nw;else ans|=(b>>i&1)<<i;}printf("%d\n",ans^b);}return 0; }

轉載于:https://www.cnblogs.com/smyjr/p/9739276.html

總結

以上是生活随笔為你收集整理的luogu P3293 [SCOI2016]美味的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。