洛谷P2932 [USACO09JAN]地震造成的破坏Earthquake Damage

Posted third2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷P2932 [USACO09JAN]地震造成的破坏Earthquake Damage相关的知识,希望对你有一定的参考价值。

洛谷P2932 [USACO09JAN]地震造成的破坏Earthquake Damage
dfs染色

 

#include <bits/stdc++.h> 
#define For(i,j,k) for(int i=j;i<=k;i++) 
#define Dow(i,j,k) for(int i=j;i>=k;i--) 
#define LL long long 
using namespace std ; 

const int N = 30011 , M = 100011 ; 
struct node{
    int to,pre ; 
}e[M*2];
int n,m,K,x,cnt,ans ;
int head[N],fa[N] ;  
bool visit[N] ; 
inline int read() 
{
    int x = 0 , f = 1 ; 
    char ch = getchar() ; 
    while(ch<0||ch>9) { if(ch==-) f = -1 ; ch = getchar() ; } 
    while(ch>=0&&ch<=9) { x = x * 10+ch-48 ; ch = getchar() ; } 
    return x * f ;  
}

inline void add(int x,int y) 
{
    e[++cnt].to = y ; 
    e[cnt].pre = head[x] ; 
    head[x] = cnt ; 
}

inline void del(int u) 
{
    for(int i=head[u];i;i=e[i].pre) 
        visit[e[i].to]=1 ; 
}

inline void dfs(int u) 
{
    if(visit[u]) return ; 
    visit[u]=1 ; ans-- ; 
    for(int i=head[u];i;i=e[i].pre) 
        dfs(e[i].to) ; 
}

int main() 
{
    n = read() ; m = read() ; K = read() ; 
    For(i,1,m) {
        int x,y ; 
        x = read() ; y = read() ; 
        add(x,y) ; add(y,x) ; 
    } 
    For(i,1,K) del(read()) ; 
    
    ans = n ; 
    dfs(1) ; 
    
    printf("%d\n",ans) ; 
     return 0 ; 
}

 

以上是关于洛谷P2932 [USACO09JAN]地震造成的破坏Earthquake Damage的主要内容,如果未能解决你的问题,请参考以下文章

USACO 2009 JAN地震造成的破坏Earthquake Damage(DFS)

洛谷2944 [USACO09MAR]地震损失2Earthquake Damage 2

洛谷——P2935 [USACO09JAN]最好的地方Best Spot

洛谷 P2935 [USACO09JAN]最好的地方Best Spot

洛谷 P2936 [USACO09JAN]全流Total Flow

洛谷——P2936 [USACO09JAN]全流Total Flow