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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P5167 xtq的神笔

發(fā)布時間:2024/1/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P5167 xtq的神笔 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

傳送門

題解

倍增也好二分也好,果然復(fù)雜度只要和\(\log\)插上關(guān)系就沒我啥事了……

首先由一個顯而易見然而我完全沒有發(fā)現(xiàn)的結(jié)論,設(shè)\(calc(l,r)\)表示區(qū)間\([l,r]\)\(or\)起來加區(qū)間的\(and\)起來加區(qū)間的\(\gcd\)起來(就是題目里說的那個亂七八糟的東西)的值,那么我們固定右端點(diǎn)\(r\),左端點(diǎn)逐漸座椅的過程中,\(calc(l,r)\)的變化的次數(shù)為\(O(\log v)\),其中\(v\)是所有格子的值域

證明:左移的時候,\(or\)\(and\)每次變化都會改變一個二進(jìn)制位,最多改變\(O(\log v)\)次,而\(gcd\)因?yàn)槊看味紩兂勺约旱囊蜃?#xff0c;值必然不超過之前的一半,所以總的變化次數(shù)也是\(O(\log v)\)

于是我們可以把之前的所有位置給分成\(O(\log v)\)段,其中每一段里面所有位置到當(dāng)前位置的\(or,and,gcd\)都相等,這樣可以用一個雙向鏈表來維護(hù),每次加入一個新位置的時候之前的區(qū)間不可能被拆分,只可能被合并。于是每一次加入之后合并,然后在這些所有的區(qū)間里找最優(yōu)的就是了

//minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i) #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v) template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;} using namespace std; char buf[1<<21],*p1=buf,*p2=buf; inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;} int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f; } char sr[1<<21],z[20];int C=-1,Z=0; inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;} void print(R int x){if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++C]=z[Z],--Z);sr[++C]='\n'; } const int N=3e5+5,L=19; int Log[N],a[N],st1[N][L],st2[N][L],st3[N][L]; struct node{ll v1,v2,v3,f;}p[N],res;int las[N],nxt[N],h,t,tot;ll f[N]; int n,k; int gcd(int x,int y){return y?gcd(y,x%y):x;} void ins(const node &b){p[++tot]=b,nxt[t]=tot,las[tot]=t;t=tot,nxt[tot]=-1; } void del(R int pos){nxt[las[pos]]=nxt[pos];pos==t?t=las[pos]:las[nxt[pos]]=las[pos]; } int query_or(R int l,R int r){int k=Log[r-l+1];return st1[l][k]|st1[r-(1<<k)+1][k]; } int query_and(R int l,R int r){int k=Log[r-l+1];return st2[l][k]&st2[r-(1<<k)+1][k]; } int query_gcd(R int l,R int r){int k=Log[r-l+1];return gcd(st3[l][k],st3[r-(1<<k)+1][k]); } void clr(){tot=h=t=0;memset(nxt,0,sizeof(nxt)),memset(las,0,sizeof(las));memset(f,0xef,sizeof(f)),nxt[0]=-1; } int main(){ // freopen("testdata.in","r",stdin);int T=read();fp(i,2,N-5)Log[i]=Log[i>>1]+1;while(T--){clr();n=read(),k=read();fp(i,1,n)st1[i][0]=st2[i][0]=st3[i][0]=a[i]=read();fp(i,1,k)f[i-1]=read();for(R int j=1;(1<<j)<=n;++j)fp(i,1,n-(1<<j)+1){st1[i][j]=st1[i][j-1]|st1[i+(1<<j-1)][j-1];st2[i][j]=st2[i][j-1]&st2[i+(1<<j-1)][j-1];st3[i][j]=gcd(st3[i][j-1],st3[i+(1<<j-1)][j-1]);}fp(i,k,n){int pos=nxt[h];while(pos>=0){p[pos].v1|=a[i],p[pos].v2&=a[i],p[pos].v3=gcd(p[pos].v3,a[i]);pos=nxt[pos];}res={query_or(i-k+1,i),query_and(i-k+1,i),query_gcd(i-k+1,i),f[i-k]};ins(res),pos=nxt[h];while(pos>=0&&nxt[pos]>=0){if(p[pos].v1==p[nxt[pos]].v1&&p[pos].v2==p[nxt[pos]].v2&&p[pos].v3==p[nxt[pos]].v3)cmax(p[pos].f,p[nxt[pos]].f),del(nxt[pos]);pos=nxt[pos];}pos=nxt[h];while(pos>=0)cmax(f[i],p[pos].v1+p[pos].v2+p[pos].v3+p[pos].f),pos=nxt[pos];}printf("%lld\n",f[n]);}return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/bztMinamoto/p/10206107.html

總結(jié)

以上是生活随笔為你收集整理的P5167 xtq的神笔的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女福利视频在线 | 日韩不卡视频在线 | 在线男人天堂 | 国产伦精品一区二区三区在线 | 午夜影院在线免费观看 | 在线免费观看你懂的 | 91成人久久| 动漫av在线| 国产美女作爱视频 | 黄色特一级 | 欧美一级做性受免费大片免费 | 天堂资源地址在线 | 国产大片一区二区 | 国久久 | 91原视频 | 生活片毛片 | 在线观看国产一区二区 | 欧美你懂得 | 麻豆传媒映画官网 | 欧美一级黄色片视频 | 日产电影一区二区三区 | 一级做a爱片久久 | 91调教视频 | 韩国伦理大全 | 动漫av一区二区三区 | 超碰激情| 欧美在线免费观看视频 | 激情五月激情综合网 | 日韩在线影视 | 亚洲一区电影在线观看 | 中文字幕爱爱 | 欧美在线视频免费 | 日本顶级大片 | 久久99国产精品久久99果冻传媒 | 免费av动漫| 99久久精品免费看国产免费软件 | 精品国产一区二区三区在线 | a级片久久 | 韩国国产在线 | 岛国av免费看 | 精品日本一区二区 | 日韩二级片 | 青青草逼 | 邵氏电影《金莲外传2》免费观看 | 99re免费视频 | 成人精品三级av在线看 | a级片中文字幕 | 欧美国产日韩在线观看 | 日本三级吃奶头添泬 | 久久婷婷久久 | 高潮无码精品色欲av午夜福利 | 欧美做爰性生交视频 | 美女屁股眼视频免费 | 在线的av| 亚洲欧美一区二区激情 | 男人天堂v | 欧美日韩亚洲成人 | 午夜剧场免费在线观看 | 久久久久久久久久免费 | 97久久人澡人人添人人爽 | 影音先锋在线中文字幕 | 国产黄色录像片 | ,午夜性刺激免费看视频 | 午夜在线一区二区 | 快播视频在线观看 | 视频福利在线观看 | 91视频合集| 免费福利在线观看 | 亚洲国产不卡 | 色偷偷噜噜噜亚洲男人 | 西比尔在线观看完整视频高清 | 午夜影院在线观看免费 | 黑人操亚洲美女 | 欧美大片黄色 | 97青草| 国产精品成人电影在线观看 | 国产精品久久久久久久 | 亚洲欧美视频一区 | www.成人在线观看 | 熟妇人妻无乱码中文字幕真矢织江 | 揄拍成人国产精品视频 | 精品少妇人妻av免费久久久 | 黄色大片儿 | 国产精品日韩一区 | 成人a级大片 | 成人黄色一区二区 | 91免费高清视频 | 色综合视频在线 | 久久香焦 | 五月天激情影院 | 青草福利 | 一区二区中文字幕 | 欧美日韩在线第一页 | 国产成人精品视频ⅴa片软件竹菊 | 欧洲精品久久久久毛片完整版 | 女生下面流水视频 | 国产日韩网站 | 日韩电影网站 | 国产成人短视频在线观看 |