PAT A 1013. Battle Over Cities
来源:互联网 发布:淘宝商家退款流程 编辑:程序博客网 时间:2024/05/16 09:53
PAT A 1013. Battle Over Cities
就是并查集
id[x] = fd(id[x]) 写成 id[x] = fd(x)
导致段错误
ZZ
#include <bits/stdc++.h>using namespace std;struct UnionFind{ vector<int> id; vector<int> sz; int n; int cnt; UnionFind(int n) : n(n) { cnt = n; id.resize(n); sz.resize(n); for (int i = 0; i < n; i++) { id[i] = i; sz[i] = 1; } } int fd(int x) { if (x == id[x]) return x; return id[x] = fd(id[x]); } void unite(int x, int y) { int fx = fd(x); int fy = fd(y); if (fx == fy) return; if (sz[fx] < sz[fy]) swap(fx, fy); id[fy] = fx; sz[fx] += sz[fy]; cnt--; }};int main(){ int n, m, k; scanf("%d%d%d", &n, &m, &k); vector< pair<int, int> > a; for (int i = 0; i < m; i++) { int u, v; scanf("%d%d", &u, &v); u--; v--; a.push_back(make_pair(u, v)); } while (k--) { int x; scanf("%d", &x); x--; UnionFind uf(n); for (int i = 0; i < m; i++) { if (a[i].first != x && a[i].second != x) { uf.unite(a[i].first, a[i].second); } } cout << uf.cnt - 2 << endl; }}
0 0
- PAT A 1013. Battle Over Cities (25)
- PAT-A 1013. Battle Over Cities (25)
- PAT A 1013. Battle Over Cities (25)
- PAT(A) - 1013. Battle Over Cities (25)
- PAT A 1013. Battle Over Cities
- PAT-A-1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities
- PAT 1013. Battle Over Cities
- PAT 1013. Battle Over Cities
- PAT 1013. Battle Over Cities
- PAT 1013. Battle Over Cities
- 【PAT】1013. Battle Over Cities
- [PAT]Battle Over Cities
- PAT 1013. Battle Over Cities (25) DFS
- 1013. Battle Over Cities (25)-PAT
- pat 1013. Battle Over Cities (25)
- 【PAT】1013. Battle Over Cities (25)
- PAT: 1013. Battle Over Cities (25)
- Ubuntu常用命令大全
- stm32 SPFD5420A TFT液晶屏调试字体旋转
- (四十六)网络——协议格式
- 寒假的一些记录
- POJ1111 Image Perimeters(dfs)
- PAT A 1013. Battle Over Cities
- 阻止手机锁屏
- Android动画精讲一:从setTranslationX谈属性动画和view动画的区别
- 获取ip地址
- zoj1167
- U-Mail邮件中继破解国际通邮阻碍因素和隔阂
- PC流量越来越低?隐藏在背后的转型
- Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int)
- ubuntu16.04 lantern安装过程