DYNACON2 - Dynamic Graph Connectivity
题意翻译
## 题目描述
EntropyIncreaser 有一个 $n$ 个点的无向图,初始没有边。
她现在要对这个图进行$m$次操作,具体如下:
$\texttt{add}$ $u$ $v$:表示在 $u$ 和 $v$ 节点之间连一条边,保证此时 $u,v$ 之间没有边。
$\texttt{rem}$ $u$ $v$:表示删除 $u$ 和 $v$ 节点之间的边,保证此时 $u,v$ 之间存在边。
$\texttt{conn}$ $u$ $v$:表示查询 $u$ 和 $v$ 节点是否连通。如果连通则输出`YES`,否则输出`NO`。
由于她还要准备去阿克NOI,不想做这么简单的问题浪费时间。
于是这个任务就交给你了。
## 输入输出格式
### 输入格式
第一行两个正整数 $n,m$,表示图的节点数和操作数。
接下来 $m$ 行,每行有一个字符串和两个正整数,表示一次操作。
### 输出格式
对于每个 $\texttt{conn}$ 操作,输出一行一个`YES`或`NO`表示答案。
## 说明
样例有锅。
真正的输入样例为:
```cpp
4 11
add 1 2
add 2 3
add 3 4
add 1 4
conn 4 2
rem 1 2
conn 2 4
rem 3 4
conn 4 2
add 2 4
conn 4 2
```
真正的输出样例为:
```cpp
YES
YES
NO
YES
```
第一个测试点为样例。
题目描述
A graph initially consists of N (1
Your task is to maintain that graph and answer connectivity queries.
All edges in the problem are **undirected**.
You will receive the following queries, where (1
- **add** A B : add an edge between vertices A and B, where initially there is no path between A and B.
- **rem** A B : remove edge between vertices A and B, where initially there is an edge between A and B.
- **conn** A B : print **YES** if there is a path between A and B and **NO** otherwise, where A and B are different.
输入输出格式
输入格式
The first line of input contains the number of vertices N and the number of queries M (1
输出格式
For each **conn** query output **YES** or **NO**. Pay attention to letter case.
输入输出样例
输入样例 #1
\n4 11\nadd 1 2\nadd 2 3\nadd 3 4\nadd 1 4\nconn 4 2\nrem 1 2\nconn 2 4\nrem 3 4\nconn 4 2\nadd 2 4\nconn 4 2\n\n
输出样例 #1
\nYES\nYES\nNO\nYES\n\nThis example will be the first test case.