洛谷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 ; 
}

 

转载于:https://www.cnblogs.com/third2333/p/7637433.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值