1013 Battle Over Cities
Posted kkmjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1013 Battle Over Cities相关的知识,希望对你有一定的参考价值。
题意:
思路:计算连通块。
代码:
#include <cstdio> #include <cstring> #include <vector> using namespace std; const int maxn=1005; bool vis[maxn]; vector<int> graph[maxn]; int n,m,k; void dfs(int v) { vis[v]=true; for(auto u:graph[v]) if(!vis[u]) dfs(u); } int func(int v) { //cut memset(vis,false,sizeof(vis)); vis[v]=true; //calculate the number of connected block int cnt=0; for(int i=1;i<=n;i++){ if(!vis[i]){ dfs(i); cnt++; } } return cnt-1; } int main() { scanf("%d%d%d",&n,&m,&k); int u,v; for(int i=0;i<m;i++){ scanf("%d%d",&u,&v); graph[u].push_back(v); graph[v].push_back(u); } int query; while(k--){ scanf("%d",&query); printf("%d ",func(query)); } return 0; }
以上是关于1013 Battle Over Cities的主要内容,如果未能解决你的问题,请参考以下文章