problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing837 命名空间参考

  1. 连通块中点的数量
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing837, case1)
 

详细描述

  1. 连通块中点的数量

函数说明

◆ main()

int acwing::acwing837::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing.cpp7005 行定义.

7005 {
7006 int n;
7007 int m;
7008 cin >> n >> m;
7009 UnionFind uf(n);
7010 while(m-- != 0) {
7011 string op;
7012 int a;
7013 int b;
7014 cin >> op;
7015 if(op == "C") {
7016 cin >> a >> b;
7017 uf.unite(a - 1, b - 1);
7018 } else if(op == "Q1") {
7019 cin >> a >> b;
7020 cout << (uf.same(a - 1, b - 1) ? "Yes" : "No") << endl;
7021 } else {
7022 cin >> a;
7023 cout << uf.get_size(a - 1) << endl;
7024 }
7025 }
7026 return 0;
7027 }
并查集
Definition: templates.h:91

引用了 UnionFind::get_size(), UnionFind::same() , 以及 UnionFind::unite().

被这些函数引用 TEST().

◆ TEST()

acwing::acwing837::TEST ( acwing837  ,
case1   
)

在文件 acwing_test.cpp3274 行定义.

3274 {
3275 istringstream in("5 5\n"
3276 "C 1 2\n"
3277 "Q1 1 2\n"
3278 "Q2 1\n"
3279 "C 2 5\n"
3280 "Q2 5");
3281 auto out = ostringstream();
3282 main(in, out);
3283 const auto ans = out.str();
3284 ASSERT_EQ("Yes\n"
3285 "2\n"
3286 "3\n",
3287 ans);
3288 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().