PAT 1013. Battle Over Cities (25)

来源:互联网 发布:防网络诈骗视频 编辑:程序博客网 时间:2024/06/05 20:49
#include<iostream>using namespace std;int N, M, K;int road[1000][1000] = { 0 };int tmp_road[1000][1000] = { 0 };int vst[1000] = { 0 };int cnt = 0;void dfs(int i){vst[i] = 1;for (int j = 1; j <= N; j++){if (tmp_road[i][j] && !vst[j])dfs(j);}}void dfs_all(){for (int i = 1; i <= N; i++){if (!vst[i]){dfs(i); cnt++;}}}int main(){cin >> N >> M >> K;for (int i = 0; i < M; i++){int c1, c2;cin >> c1 >> c2;road[c1][c2] = road[c2][c1] = 1;}while (K--){for (int i = 1; i <= N; i++){for (int j = 1; j <= N; j++){tmp_road[i][j] = road[i][j];}}for (int i = 1; i <= N; i++)vst[i] = 0;cnt = 0;int c; cin >> c;for (int i = 1; i <= N; i++){//和c相连接的路都要断掉tmp_road[c][i] = tmp_road[i][c] = 0;}dfs_all();cout << cnt - 2 << endl;}}

1 0