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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

P3247-[HNOI2016]最小公倍数【分块,并查集】

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P3247-[HNOI2016]最小公倍数【分块,并查集】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題

題目鏈接:https://www.luogu.com.cn/problem/P3247


題目大意

nnn個點mmm條邊,每條邊有(x,y,a,b)(x,y,a,b)(x,y,a,b)qqq次詢問(x′,y′,a′,b′)(x',y',a',b')(x,y,a,b)表示詢問是否存在一條x′?>y′x'->y'x?>y的路徑使得路徑上amax=a′,bmax=b′a_{max}=a',b_{max}=b'amax?=a,bmax?=b


解題思路

考慮暴力的做法,我們用加入所有a≤a′a\leq a'aab≤b′b\leq b'bb的邊加入,然后看x′y′x'y'xy是否在同一連通塊且聯通塊中a,ba,ba,b最大值是否是a′,b′a',b'a,b

如何優化,我們把所有的邊根據aia_iai?的權值分成若干個塊,對于每個塊我們把所有a′a'a在這個范圍的內的詢問進行處理,我們把所有處理的詢問和在塊前面的邊按照bbb排序,然后這一部分我們就用指針掃描加入,對于在塊里的邊我們就暴力掃描加入。

但是每個詢問做完之后注意塊里的邊要刪去,所以我們不能用路徑壓縮,用按秩合并即可。

時間復雜度O(qmlog?n)O(q\sqrt m\log n)O(qm?logn)


codecodecode

#include<cstdio> #include<cstring> #include<algorithm> #include<cctype> #include<cmath> using namespace std; const int N=1e5+10; struct node{int x,y,a,b,s; }e[N],q[N],cl[N]; int n,m,Q,tot,p[N]; int fa[N],siz[N],A[N],B[N]; bool ans[N]; bool cmpa(node x,node y) {return x.a==y.a?(x.b<y.b):(x.a<y.a);} bool cmpb(node x,node y) {return x.b==y.b?(x.a<y.a):(x.b<y.b);} int find(int x) {return fa[x]==x?x:find(fa[x]);} int read() {int x=0,f=1; char c=getchar();while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return x*f; } void unionn(int x,int y,int a,int b){x=find(x),y=find(y);if(siz[x]>siz[y])swap(x,y);cl[++tot]=(node){x,y,A[y],B[y],siz[y]};A[y]=max(max(A[x],A[y]),a);B[y]=max(max(B[x],B[y]),b);if(x!=y)fa[x]=y;siz[y]=max(siz[y],siz[x]+1);return; } void Clear(){for(int i=tot;i>=1;i--){fa[cl[i].x]=cl[i].x;A[cl[i].y]=cl[i].a;B[cl[i].y]=cl[i].b;siz[cl[i].y]=cl[i].s;}tot=0;return; } int main() { // freopen("multiple5.in","r",stdin); // freopen("data.out","w",stdout);n=read();m=read();for(int i=1;i<=m;i++)e[i].x=read(),e[i].y=read(),e[i].a=read(),e[i].b=read();Q=read();for(int i=1;i<=Q;i++)q[i].x=read(),q[i].y=read(),q[i].a=read(),q[i].b=read(),q[i].s=i;sort(e+1,e+1+m,cmpa);sort(q+1,q+1+Q,cmpb); int T=sqrt(m*log2(n));e[m+1].a=1e9+1;for(int k=1;k<=m;k+=T){int l=k,r=min(k+T,m);int cnt=0;for(int i=1;i<=n;i++)fa[i]=i,A[i]=B[i]=-1,siz[i]=0;for(int i=1;i<=Q;i++)if(q[i].a>=e[l].a&&q[i].a<e[r+1].a)p[++cnt]=i;if(!cnt)continue;if(k)sort(e+1,e+l,cmpb);int pt=1;for(int i=1;i<=cnt;i++){int x=p[i];while(pt<l&&e[pt].b<=q[x].b)unionn(e[pt].x,e[pt].y,e[pt].a,e[pt].b),pt++;tot=0;for(int j=l;j<=r;j++)if(e[j].a<=q[x].a&&e[j].b<=q[x].b)unionn(e[j].x,e[j].y,e[j].a,e[j].b);int fx=find(q[x].x),fy=find(q[x].y);ans[q[x].s]=((fx==fy)&&(A[fx]==q[x].a)&&(B[fx]==q[x].b));Clear();}}for(int i=1;i<=Q;i++)if(ans[i])printf("Yes\n");else printf("No\n");return 0; }

總結

以上是生活随笔為你收集整理的P3247-[HNOI2016]最小公倍数【分块,并查集】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品视频999 | 久久久久久亚洲中文字幕无码 | 成人手机视频在线观看 | 麻豆一二三区 | 黄网免费视频 | 久久精品6 | 欧美性猛交xxxx乱大交蜜桃 | 天天做天天爱夜夜爽 | 国产人成在线 | 欧美十大老熟艳星 | 免费福利在线视频 | 男人捅爽女人 | 日韩综合一区二区三区 | 日韩欧美二区三区 | 国产极品在线观看 | 办公室大战高跟丝袜秘书经理ol | 亚洲男人天堂久久 | jizzjizzjizz亚洲| 99久久久久久久久久 | 黄色三级视频网站 | 软萌小仙自慰喷白浆 | 亚洲v| 国产视频精品一区二区三区 | 精品久久久久久久久久久久 | h片在线| 日日嗨av一区二区三区四区 | 台湾swag在线播放 | 国产成人99久久亚洲综合精品 | 亚洲aav | 亚洲天堂国产 | 午夜av剧场| 蜜臀久久99精品久久久久久 | sm久久捆绑调教精品一区 | 精品人伦一区二区 | 天天干天天操天天爱 | 日本裸体xx少妇18在线 | 亚洲va久久久噜噜噜久久天堂 | 日韩午夜伦 | 成人免费视频国产 | 免费一级黄 | 欧美日韩在线视频免费观看 | 成人在线免费播放视频 | 日韩欧美高清在线视频 | 精品无码人妻一区二区三 | 久久久久麻豆v国产精华液好用吗 | 丰腴饱满的极品熟妇 | jizzjizz在线观看 | 欧美a级肉欲大片xxx | a级片日本 | 国产精品欧美一区喷水 | 日本免费在线播放 | 成人wwxx免费观看 | 一区二区av电影 | 久久久久久久一 | www.四虎影视 | 国产美女福利视频 | 欧美日韩在线第一页 | 激情小说中文字幕 | 91麻豆精品国产 | 天天爽天天摸 | 欧美aa一级 | 亚洲成人免费在线观看 | 欧美黑吊大战白妞欧美大片 | 2021国产精品 | 久久久一| 亚洲av成人精品一区二区三区在线播放 | 亚洲精品一区二区潘金莲 | 九九九九热 | 我们的生活第五季在线观看免费 | 在线观看的黄色网址 | 亚洲精品在线观看免费 | 久久精品免费在线观看 | xxx国产精品| 日韩超碰在线 | 免费看av大片 | 中文字幕丝袜 | 欧美成性色 | 看国产黄色片 | 污片免费网站 | 色黄大色黄女片免费中国 | 超碰66 | 国产三级自拍视频 | 成人视频在线观看 | 污视频网站免费观看 | 女人天堂网站 | 尤物在线观看 | 久久久免费网站 | 三上悠亚亚洲一区 | 亚洲熟女乱综合一区二区三区 | 亚洲国产无码精品 | 大肉大捧一进一出视频 | 91人妻一区二区 | 新香蕉视频 | 天堂av中文在线 | 大学生一级一片全黄 | 亚洲女同一区 | 中文字幕一区二区三区在线视频 | 日本中文字幕在线 | 素人fc2av清纯18岁 |