BF的資料結構題單-提高組 ——P1197 [JSOI2008]星球大戰
P1197 [JSOI2008]星球大戰
題解:
經典題,反向加邊。
#include<bits/stdc++.h>
using namespace std;
const int N=4e5+10;
vector<int> g[N];
int pre[N];
typedef pair<int,int> pp;
vector<pp> edge;
int res[N],cnt,vis[N],a[N];
int find(int a)
{
if(pre[a]!=a) return pre[a]=find(pre[a]);
return pre[a];
}
void merge(int a,int b)
{
pre[a]=b;
}
signed main()
{
// memset(head,-1,sizeof head);
int n,m; cin>>n>>m;
int num=n;
for(int i=0;i<n;i++) pre[i]=i;
for(int i=1;i<=m;i++){
int a,b; scanf("%d%d",&a,&b);
edge.push_back({a,b});
g[a].push_back(b);
g[b].push_back(a);
}
int k; cin>>k;
for(int i=1;i<=k;i++){
int tmp; scanf("%d",&tmp);
a[i]=tmp;
vis[tmp]=1;
}
int tot=0;
for(int i=0;i<edge.size();i++){
if(vis[edge[i].second]||vis[edge[i].first]) continue;
int fx=find(edge[i].first),fy=find(edge[i].second);
if(fx==fy) continue;
merge(fx,fy);
n--;
tot++;
}
// cout<<"n : "<<n<<endl;
res[k+1]=num-k-tot;
for(int i=k;i>=1;i--){
vis[a[i]]=0;
for(int j=0;j<g[a[i]].size();j++){
if(vis[g[a[i]][j]]) continue;
int fx=find(g[a[i]][j]),fy=find(a[i]);
if(fx!=fy) {
merge(fx, fy);
tot++;
}
}
res[i]=num-i+1-tot;
}
for(int i=1;i<=k+1;i++) printf("%d\n",res[i]);
return 0;
}
相關文章
- BF的資料結構題單-提高組——樹鏈剖分資料結構
- P1197 [JSOI2008]星球大戰JS
- bzoj 1015: [JSOI2008]星球大戰starwar 並查集JS並查集
- BZOJ1015[JSOI2008]星球大戰starwar[並查集]JS並查集
- 資料結構與演算法JavaScript (四) :串(BF)資料結構演算法JavaScript
- 資料結構簡單題資料結構
- Jacob Olsufka:《星球大戰》大資料分析 誰的存在感最強?大資料
- 實戰資料結構(1)_單連結串列的操作資料結構
- 實戰資料結構(10)_單連結串列的就地排序資料結構排序
- 大資料背後的星球脈動大資料
- 資料結構::一些經典的大資料題資料結構大資料
- 實戰資料結構(8)_單連結串列的就地逆置資料結構
- 實戰資料結構(4)_迴圈單連結串列解決約瑟夫問題資料結構
- 實戰PHP資料結構基礎之單連結串列PHP資料結構
- 與《毀滅戰士》比肩的“星球大戰”遊戲(上)遊戲
- 與《毀滅戰士》比肩的“星球大戰”遊戲(下)遊戲
- 組織架構新型資料結構思考架構資料結構
- 探索資料結構:單連結串列的實戰指南資料結構
- 大話資料結構資料結構
- 《大話資料結構》總結資料結構
- 實戰資料結構(2)_兩個單連結串列間的刪除操作資料結構
- 實戰資料結構(3)_兩個單連結串列間的合併操作資料結構
- 實戰資料結構(9)_單連結串列實現多項式的相乘資料結構
- 如何構建有效的大資料戰略大資料
- python資料結構元組tuplePython資料結構
- 單連結串列的歸併(資料結構)資料結構
- 《星球大戰》與Python之間的那些事Python
- 從《星球大戰》看人工智慧的未來人工智慧
- 大資料的結構和特點大資料
- Redis 5大資料結構Redis大資料資料結構
- 大話 Redis 資料結構Redis資料結構
- 資料結構04——單連結串列資料結構
- 資料結構之單連結串列資料結構
- 面試題—資料結構之單連結串列詳述(基本篇)面試題資料結構
- 資料結構與演算法之硬幣組合問題資料結構演算法
- Java刷題常用的資料結構總結Java資料結構
- 加入大資料週刊,你不再是孤獨的星球!大資料
- 【整理】資料結構——題目資料結構