国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[bzoj1015][JSOI2008]星球大戰(zhàn)starwar

2019-11-08 20:07:30
字體:
供稿:網(wǎng)友

19號(hào)學(xué)校要考試了,檢測(cè)大家寒假預(yù)習(xí)情況…… 題目大意:一個(gè)無向圖上有N個(gè)點(diǎn),有m條邊,要按順序刪點(diǎn),按次序輸出每次刪點(diǎn)后圖中的連通塊數(shù)量。 因?yàn)閯h點(diǎn)的操作實(shí)現(xiàn)過于復(fù)雜,所以我們可以考慮倒著來將一個(gè)個(gè)點(diǎn)加入圖中,通過并查集來求出連通塊數(shù)量。

#include <cstdio>#include <vector>using namespace std;#define rover 10000inline char tc(void){ static char fl[rover+1],*A=fl,*B=fl; return A==B?B=(A=fl)+fread(fl,1,rover,stdin),A==B?EOF:*A++:*A++;}#define C (c=tc())inline void read(int &a){ a=0;static char c; int f=1; while(C<'0'||c>'9') c=='-'?f=-1:0; while(c>='0'&&c<='9') a=a*10+c-'0',C; a*=f; return ;}int n,m,x,y,k,od[400002],f[400002],tot,sum,ans[400002];vector<int> s[400002];bool b[400002];int gf(int x){ return x==f[x]?x:f[x]=gf(f[x]);}int main(void){ register int i,j; read(n),read(m); for (i=0;i<n;++i) f[i]=i; for (i=1;i<=m;++i) read(x),read(y),s[x].push_back(y),s[y].push_back(x); read(k); for (i=1;i<=k;++i) read(od[i]),b[od[i]]=1; for (i=0;i<n;++i) if(b[i]==0) { ++sum; for (j=0;j<s[i].size();++j) if(b[s[i][j]]==0&&gf(i)!=gf(s[i][j])) --sum,f[f[i]]=f[s[i][j]]; } ans[tot=k+1]=sum; while(k) { ++sum; b[od[k]]=0; for (j=0;j<s[od[k]].size();++j) if(b[s[od[k]][j]]==0&&gf(od[k])!=gf(s[od[k]][j])) --sum,f[f[od[k]]]=f[s[od[k]][j]]; ans[k]=sum; --k; } for (i=1;i<=tot;++i)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 公安县| 磐石市| 清新县| 防城港市| 桑日县| 固原市| 郓城县| 临城县| 泰州市| 仪征市| 洮南市| 安溪县| 绥芬河市| 贵定县| 怀远县| 青冈县| 彭泽县| 元江| 博白县| 明水县| 双流县| 交城县| 安阳县| 浪卡子县| 千阳县| 嘉祥县| 阜新市| 景德镇市| 遂川县| 永顺县| 丹江口市| 金昌市| 茂名市| 铜梁县| 梁山县| 若尔盖县| 卢湾区| 芦溪县| 庐江县| 建宁县| 浠水县|