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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ 3453【NOIP2013中秋节模拟】连通块

發(fā)布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 3453【NOIP2013中秋节模拟】连通块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原題

Description

你應該知道無向圖的連通塊的數(shù)量,你應該知道如何求連通塊的數(shù)量。當你興奮與你的成就時,破壞王Alice拆掉了圖中的邊。當她發(fā)現(xiàn),每刪去一條邊,你都會記下邊的編號,同時告訴她當前連通塊的個數(shù)。

然而,對邊編號簡直就是個悲劇,因為Alice為了刁難你,拆掉編號從l到r的邊,當然你需要做的事情就是求連通塊的個數(shù)。如果你答對了,Alice會把拆掉的邊裝好,迚行下一次破壞。如果你無法完成這個任務,Alice會徹底毀了你的圖。

進行完足夠多次之后,Alice覺得無聊,就玩去了,而你卻需要繼續(xù)做第三題。

Input

第一行兩個整數(shù)n,m,表示點數(shù)和邊數(shù)。

之后m行每行兩個整數(shù)x,y,表示x與y之間有無向邊。(按讀入順序給邊編號,編號從1開始)

一行一個整數(shù)k,表示Alice的破壞次數(shù)。

之后k行,每行兩個整數(shù)l,r。

Output

k行,每行一個整數(shù)。

Sample Input

6 5

1 2

5 4

2 3

3 1

3 6

6

1 3

2 5

1 5

5 5

2 4

3 3

Sample Output

4

5

6

3

4

2

Data Constraint

對于30%的數(shù)據(jù),n<=100,k<=10

對于60%的數(shù)據(jù),k<=1000

對于100%的數(shù)據(jù),n<=500,m<=10000,k<=20000,1<=l<=r<=m

題解

  • 并查集。Collect!

  • 每一個 f[i] 為一個并查集,記錄只添加前 i 條邊時,所有節(jié)點的聯(lián)通情況。

  • 每一個 g[i] 也是一個并查集,記錄只添加 im 條邊時,所有節(jié)點的聯(lián)通情況。

  • 對于每個詢問只要把 f[l?1]g[r+1] 合并至 H[] 中。

  • 最后在 H[] 中判斷即可。

Code

#include<cstdio> #include<cstring> using namespace std; int n,m; struct data {int x,y; }a[10002]; int f[10002][501],g[10002][501],h[501]; inline int read() {int data=0; char ch=0;while(ch<'0' || ch>'9') ch=getchar();while(ch>='0' && ch<='9') data=data*10+ch-'0',ch=getchar();return data; }//讀入優(yōu)化 inline int getf(int k,int x) {if(f[k][x]==x) return x;return f[k][x]=getf(k,f[k][x]); }//F的查找 inline int getg(int k,int x) {if(g[k][x]==x) return x;return g[k][x]=getg(k,g[k][x]); }//G的查找 void init() {n=read();m=read();for(int i=1;i<=m;i++) a[i].x=read(),a[i].y=read();for(int i=1;i<=n;i++) f[0][i]=g[m+1][i]=i;//初值for(int i=1;i<=m;i++){memcpy(f[i],f[i-1],sizeof(f[i]));f[i][getf(i,a[i].x)]=getf(i,a[i].y);}//F的處理for(int i=m;i;i--){memcpy(g[i],g[i+1],sizeof(g[i]));g[i][getg(i,a[i].x)]=getg(i,a[i].y);}//G的處理 } inline int geth(int x) {if(h[x]==x) return x;return h[x]=geth(h[x]); }//H的查找 void work() {int k=read();while(k--){int l=read()-1,r=read()+1;memcpy(h,f[l],sizeof(h));for(int i=1;i<=n;i++) h[geth(h[i])]=geth(g[r][i]);//H的處理int ans=0;for(int i=1;i<=n;i++)if(h[i]==i) ans++;//H的判斷printf("%d\n",ans);} } int main() {freopen("connect.in","r",stdin);freopen("connect.out","w",stdout);init();work();return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 3453【NOIP2013中秋节模拟】连通块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本久久久网站 | 国产免费脚交足视频在线观看 | 成人观看 | 四虎永久在线精品免费一区二区 | av电影在线不卡 | 狠狠爱婷婷 | 免费av网站在线观看 | 国产伦精品一区二区三区网站 | 亚洲无人禁区 | 蝌蚪自拍网站 | 亚洲av成人片色在线观看高潮 | 影音资源av | 国产精品久久久99 | 337p亚洲欧洲色噜噜噜 | xxxxwwww在线观看 | 国产亚洲高清视频 | 懂色av,蜜臀av粉嫩av | 国产日韩中文字幕 | 天海翼一区二区三区 | 男女猛烈无遮挡 | 婷婷六月综合网 | 伊人情人综合网 | 国产成人在线免费观看 | 九九热视频免费观看 | 国产乱人乱精一区二视频国产精品 | av导航网站 | 99激情| 中国黄色一级大片 | 嫩草影院国产 | 天堂av免费在线观看 | 特级毛片爽www免费版 | 中国毛片网站 | 亚洲欧洲日韩在线 | 亚洲精品乱码久久久久久久 | 国产成人精品一区二区无码呦 | 亚洲视频小说 | 在线观看黄色免费网站 | 国产伦精品一区 | 日韩欧美一区在线 | 蜜色视频 | 亚洲性色图 | 国产freexxxx性播放麻豆 | 日日夜夜精品免费 | 91在线超碰| 激情九九 | 国产精品国产精品 | 亚洲一线在线观看 | 强侵犯の奶水授乳羞羞漫虐 | 日啪| 疯狂少妇 | 天天摸日日 | 久久这里精品 | 欧美一区二区三区在线播放 | 久久对白 | 国产成人在线免费观看 | 美女扒开腿让男人 | 玖玖国产精品视频 | 变态 另类 国产 亚洲 | 亚洲国产成人精品一区二区三区 | 国内精品久久99人妻无码 | 午夜国产精品视频 | 国产乱码精品一区二三区蜜臂 | 亚洲欧美天堂网 | 日本女优黄色 | 欧美性潮喷xxxxx免费视频看 | 你懂的国产视频 | 极品探花在线播放 | 天堂俺去俺来也www 欧美大片在线播放 | 新天堂网 | 青青草草| 大桥未久av在线 | 婷婷中文字幕 | jlzzjlzz亚洲日本少妇 | 国产精品久久久久久影视 | 成人小视频在线免费观看 | 精品久久一二三区 | 欧美男女视频 | 国产区精品区 | 欧美一区二区三区网站 | 午夜痒痒网 | 成人黄色一级视频 | 美女脱光内衣内裤 | 色综合久久天天综合网 | 一区二区日韩欧美 | 国产ts人妖调教重口男 | 在线播放一区 | 男女啊啊啊 | 黄色男女网站 | 日韩一区不卡视频 | 久久伊人99 | 中文字幕第27页 | 国产黄色网页 | 国产精品99久 | 国产精品自拍片 | 久久久精品视频一区 | 欧美yyy| 蜜桃tv一区二区三区 | www.亚洲免费 | 四虎在线免费观看视频 |