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.