[NordicOI 2023] Island Alliances

Luogu
IDLGP10648
Time4000ms
Memory512MB
DifficultyP4
并查集2023NordicOI(北欧)启发式合并STL
海面上有 $n$ 个岛屿,其中有 $m$ 对岛屿关系恶劣,但是由于天气恶劣,岛屿肯定不能单独生存,所以有些岛屿提议“联盟”。 现有 $q$ 次联盟请求,每次包含了一对 $(a_i,b_i)$,表示 $a_i$ 想要与 $b_i$ 联盟,但是,考虑到某些岛屿恶劣的关系,所以这个提议不一定成立,如果 $a_i$ 原本所在联盟的岛屿都**不和** $b_i$ 所在的联盟的所有岛屿存在恶劣的关系,则两者可以同意联盟,否则将不同意。 注意此处一但同意了联盟,则两个岛屿所在联盟立即并成一个联盟。 ## Input 第一行三个整数 $n$,$m$ 和 $q$,依次表示有 $n$ 个岛屿,$m$ 对关系恶劣的岛屿和 $q$ 次提议。 接下来 $m$ 行,每行一对整数 $(u_i,v_i)$,表示 $u_i$ 座岛屿和 $v_i$ 座岛屿关系恶劣。 然后 $q$ 行,每行两个整数 $a_i$ 和 $b_i\ (a_i \neq b_i)$,表示 $a_i$ 座岛屿想与 $b_i$ 座岛屿联盟。 ## Output 对于每个提议,如果同意则输出 `APPROVE`,否则输出 `REFUSE`。 [samples] ## Background 翻译自 [NordicOI 2023 C 题](https://noi23.kattis.com/contests/noi23/problems/islandalliances) Island Alliances。 ## Note **本题采用捆绑测试**。 - Subtask 1(15 points):$2 \leq n \leq 500$,$1 \leq m \leq 10^5$,$1 \leq q \leq 10^5$。 - Subtask 2(17 points):$2 \leq n \leq 10^5$,$1 \leq m \leq 250$,$1 \leq q \leq 10^5$。 - Subtask 3(20 points):$2 \leq n \leq 5000$,$1 \leq m \leq 5000$,$1 \leq q \leq 10^5$。 - Subtask 4(23 points):保证不同意提议的情况最多只有一次。 - Subtask 5(25 points):无特殊限制。 对于所有测试数据,$2 \le n \le 10^5$,$1 \le m,q \le 10^5$,$1 \le a_i,b_i \le n$,且每对 $(a_i,b_i)$ 互不相同。
Samples
Input #1
3 1 2
1 2
2 1
1 3
Output #1
REFUSE
APPROVE
Input #2
8 3 7
1 2
2 3
3 4
1 2
4 5
5 6
7 8
3 4
1 3
2 4
Output #2
REFUSE
APPROVE
APPROVE
APPROVE
REFUSE
APPROVE
APPROVE
API Response (JSON)
{
  "problem": {
    "name": "[NordicOI 2023] Island Alliances",
    "description": {
      "content": "海面上有 $n$ 个岛屿,其中有 $m$ 对岛屿关系恶劣,但是由于天气恶劣,岛屿肯定不能单独生存,所以有些岛屿提议“联盟”。 现有 $q$ 次联盟请求,每次包含了一对 $(a_i,b_i)$,表示 $a_i$ 想要与 $b_i$ 联盟,但是,考虑到某些岛屿恶劣的关系,所以这个提议不一定成立,如果 $a_i$ 原本所在联盟的岛屿都**不和** $b_i$ 所在的联盟的所有岛屿存在恶劣的关系,则两者",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 4000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P4"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10648"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "海面上有 $n$ 个岛屿,其中有 $m$ 对岛屿关系恶劣,但是由于天气恶劣,岛屿肯定不能单独生存,所以有些岛屿提议“联盟”。\n\n现有 $q$ 次联盟请求,每次包含了一对 $(a_i,b_i)$,表示 $a_i$ 想要与 $b_i$ 联盟,但是,考虑到某些岛屿恶劣的关系,所以这个提议不一定成立,如果 $a_i$ 原本所在联盟的岛屿都**不和** $b_i$ 所在的联盟的所有岛屿存在恶劣的关系,则两者...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments