码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-08 15:31:40      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:return   efi   blog   node   dfs   amp   std   head   c++   

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

标签:return   efi   blog   node   dfs   amp   std   head   c++   

原文地址:http://www.cnblogs.com/third2333/p/7637433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!