标签:define 需要 之间 没有 nbsp bool cst 不同 不能
第1行: 三个空格分开的数: P, C, 和 N。
第2..C+1行: 每行两个空格分开的数: a_i 和 b_i * 第C+2..C+N+1行: 每行一个数: report_j。
第1行: 一个数,最少不能回到农庄的牛的数目(包括损坏的牛棚)。
1 #include <cstdio> 2 #include <vector> 3 4 #define N 30001 5 6 int p,c,n,a,b,r,ans; 7 bool vis[N]; 8 std::vector<int> g[N]; 9 10 void dfs(int u){ 11 ++ans; 12 vis[u]=true; 13 for(int i=0;i<g[u].size();++i){ 14 int v=g[u][i]; 15 if(vis[v])continue; 16 dfs(v); 17 } 18 } 19 20 int main(void){ 21 scanf("%d%d%d",&p,&c,&n); 22 for(int i=1;i<=c;++i){ 23 scanf("%d%d",&a,&b); 24 g[a].push_back(b); 25 g[b].push_back(a); 26 } 27 for(int i=1;i<=n;++i){ 28 scanf("%d",&r); 29 for(int i=0;i<g[r].size();++i){ 30 int v=g[r][i]; 31 vis[v]=true; 32 } 33 } 34 dfs(1); 35 printf("%d",p-ans); 36 }
【USACO 2009 JAN】地震造成的破坏Earthquake Damage(DFS)
标签:define 需要 之间 没有 nbsp bool cst 不同 不能
原文地址:https://www.cnblogs.com/gzh01/p/9385256.html