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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Agc012_E Camel and Oases

發(fā)布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Agc012_E Camel and Oases 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

傳送門

題目大意

坐標軸上有$n$個坐標,第$i$個坐標是$x_i$,初始你有一個容量$V$,當兩個給定的坐標距離不超過$V$時,你可以從一個坐標到達另一個坐標,同時你還可以令$V=\lfloor \frac{V}{2}\rfloor$,并到達一個任意一個給定的坐標。

求對于每一個點是否存在一種方案使得從這個點出法能夠到達每一個點至少一次。

?

題解

首先$V$的值只有$\log V$種,對于每一種取值,會有若干段下標連續(xù)的坐標可以互相到達,要求在每一層取一段使得所有坐標都被覆蓋,題意即為在強制選第一層的某一段,是否存在合法方案。

考慮先預處理每一層每一個坐標能到達的最左和最右的坐標,再在忽略第一層的意義下將每一層是否被選中的狀態(tài)壓縮起來,求出用了某些層所能覆蓋的最長前綴和后綴。

設某一選中的狀態(tài)集合為$K$,全集為$S$,$K$所能覆蓋的最長前綴為$Pre_K$,最長后綴為$Suf_K$。

枚舉$K$,對于每一個$Pre_K$,求出它所對應的最長的$Suf$即為$F_{Pre_K}$,這個用$Suf_{S-K}$更新即可,要考慮$F_i+1$可以更新$F_i$。

所以最后枚舉每一個坐標$i$,找到它第一層所在的段的左右端點$L,R$,看$F_{L-1}$是否能覆蓋到$R$即可。

由于狀態(tài)數(shù)是$2^{\log_2 V}$,所以它是嚴格小于$V$的,所以最終復雜度為$O(n\log V+V)$。

?

#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #define M 200020 #define INF 1000001000 using namespace std; const int BS=1<<19;char BF[BS],OT[BS],*SZ=OT,*HD,*TL; const char *ED=OT+BS-1; int Top; char Getchar(){if(HD==TL)TL=(HD=BF)+fread(BF,1,BS,stdin);return *HD++;} void flush(){fwrite(OT,1,SZ-OT,stdout);} void Putc(char c){*SZ++ =c;if(SZ==ED) flush(),SZ=OT;} int read(){int nm=0,fh=1; char cw=Getchar();for(;!isdigit(cw);cw=Getchar()) if(cw=='-') fh=-fh;for(;isdigit(cw);cw=Getchar()) nm=nm*10+(cw-'0');return nm*fh; } void TK(bool x){if(x) Putc('P'); else Putc('I'),Putc('m'),Putc('p'); Putc('o');Putc('s'),Putc('s'),Putc('i'),Putc('b'),Putc('l'),Putc('e'),Putc('\n'); } int tot,n,m,pos[M],L[M][21],R[M][21],V[40],rt; int RF[M<<3],LF[M<<3],G[M],D[M],MAXN; int main(){n=read(),m=read();for(int i=1;i<=n;i++) pos[i]=read(),D[i]=pos[i]-pos[i-1],G[i]=-(INF<<1);while(m) V[tot++]=m,m>>=1; tot++;for(int k=0;k<tot;k++){for(int i=1;i<=n;i++){R[i][k]=max(R[i-1][k]-1,1);while(i+R[i][k]<=n&&D[i+R[i][k]]<=V[k]) R[i][k]++;}for(int i=n;i;i--){L[i][k]=max(L[i+1][k]-1,1);while(i-L[i][k]>0&&D[i-L[i][k]+1]<=V[k]) L[i][k]++;}} MAXN=(1<<tot);for(int i=2;i<MAXN;i+=2){for(int k=1;k<tot;k++){int w=(1<<k); if(!(i&w)) continue;LF[i]=max(LF[i],LF[i^w]+R[LF[i^w]+1][k]);RF[i]=max(RF[i],RF[i^w]+L[n-RF[i^w]][k]);} LF[i]=min(LF[i],n),RF[i]=min(RF[i],n);}for(int k=0;k<MAXN;k+=2) G[LF[k]]=max(G[LF[k]],RF[(MAXN-2)^k]);for(int i=n-1;i>=0;i--) G[i]=max(G[i],G[i+1]);for(int i=1;i<=n;i++) TK(G[i-L[i][0]]+R[i][0]+i-1>=n); flush();return 0; }

?

轉載于:https://www.cnblogs.com/OYJason/p/9805019.html

總結

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

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

主站蜘蛛池模板: 免费成人毛片 | 亚洲v在线观看 | 久久久久五月 | 日韩福利一区二区 | 中文字幕av解说 | 免费福利在线观看 | 亚洲福利视频网站 | 殴美一级黄色片 | 校园春色自拍偷拍 | 人人舔人人爽 | 日本一区二区三区中文字幕 | 亚洲图片在线视频 | 亚洲天堂精品视频 | 性欧美大战久久久久久久免费观看 | 天堂av资源 | 热久久影院 | 精品国产免费一区二区三区 | 公侵犯人妻一区二区三区 | 激烈的性高湖波多野结衣 | 日韩欧美爱爱 | 先锋影音制服丝袜 | 黄色一级网站 | 日韩亚洲在线观看 | av免费在线网站 | 日韩午夜免费视频 | 欧美人与禽zozzo禽性配 | 一本色道久久综合亚洲 | 大桥未久av在线播放 | 欧洲免费毛片 | 日干夜操 | 怡春院欧美 | 一区二区三区四区在线播放 | 日韩欧美一级片 | 成人国产精品入口 | 91xxx在线观看 | 色福利视频| 成年人免费网址 | 农村一级毛片 | 亚洲ⅴ国产v天堂a无码二区 | 狠狠干老司机 | 日韩电影在线一区 | 乳女教师の诱惑julia | 国产又爽又黄的视频 | 欧洲一区二区三区 | 一区二区av| 欧美乱轮视频 | 激情欧美网站 | 在线播放一级片 | 熟女高潮一区二区三区视频 | 亚洲精品成人网 | 91视频免费网站 | 一本色道久久加勒比精品 | 国产午夜精品福利视频 | 久久精品一二区 | 亚洲av无一区二区三区久久 | 91精品国产乱码在线观看 | 777久久久精品一区二区三区 | 久久精品美女 | av亚洲在线| 激情婷婷综合 | 色妞色视频一区二区三区四区 | 亚洲资源网站 | 爱爱免费小视频 | 国产精品91在线观看 | 天天操免费视频 | 男女激情免费网站 | 一区二区三区视频在线观看 | 69人妻精品久久无人专区 | 性久久久久久久 | 欧美自拍偷拍一区 | 少妇一边呻吟一边说使劲视频 | 老女人性视频 | 综合国产精品 | 亚洲欧美一区二区激情 | 精品99久久久久成人网站免费 | 亚州中文字幕 | 欧美大片xxx | 色婷婷av一区二区三区软件 | 日韩欧美在线观看 | 黄网在线免费 | 亚洲人成电影在线 | 看日本毛片 | 国产在线www| 午夜精品免费 | 91九色国产在线 | av软件在线观看 | 爱情岛论坛永久入址测速 | 天天人人 | 日日操夜夜操视频 | 日韩毛片一区二区三区 | 成年人的毛片 | 91桃色在线观看 | 九九热视频这里只有精品 | 大咪咪av | 女生张开腿让男生插 | 手机在线免费av | 91免费看. | 欧美日韩成人免费 | 欧美不在线 |