{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e你知道深度优先搜索(DFS)吗?例如,使用这种方法,你可以在\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eO\u003c/i\u003e(\u003ci\u003eE\u003c/i\u003e)\u003c/span\u003e时间内确定图是否连通。你甚至可以在同样的时间内计算连通分量的数量。\u003c/p\u003e\u003cp\u003e你知道并查集(DSU)吗?使用这种数据结构,你可以快速处理像“向图中添加一条边”和“计算图中连通分量的数量”这样的查询。\u003c/p\u003e\u003cp\u003e你知道如何解决动态连通性问题吗?在这个问题中,你需要快速处理三种类型的查询:\u003c/p\u003e\u003col\u003e \u003cli\u003e 向图中添加一条边 \u003c/li\u003e\u003cli\u003e 从图中删除一条边 \u003c/li\u003e\u003cli\u003e 计算图中连通分量的数量 \u003c/li\u003e\u003c/ol\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e一开始,图是空的。\u003c/p\u003e\u003cp\u003e文件的第一行包含两个整数\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e和\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e——顶点数和查询数(\u003cspan class\u003d\"tex-span\"\u003e1 ≤ \u003ci\u003eN\u003c/i\u003e ≤ 300 000\u003c/span\u003e,\u003cspan class\u003d\"tex-span\"\u003e0 ≤ \u003ci\u003eK\u003c/i\u003e ≤ 300 000\u003c/span\u003e)。接下来的\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e行包含查询,每行一个。有三种类型的查询:\u003c/p\u003e\u003col\u003e \u003cli\u003e \u003cspan class\u003d\"tex-font-style-tt\"\u003e+ \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eu\u003c/i\u003e\u003c/span\u003e \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003ev\u003c/i\u003e\u003c/span\u003e\u003c/span\u003e:在顶点\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eu\u003c/i\u003e\u003c/span\u003e和\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003ev\u003c/i\u003e\u003c/span\u003e之间添加一条边。保证在查询时图中没有这样的边。\u003c/li\u003e\u003cli\u003e \u003cspan class\u003d\"tex-font-style-tt\"\u003e- \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eu\u003c/i\u003e\u003c/span\u003e \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003ev\u003c/i\u003e\u003c/span\u003e\u003c/span\u003e:移除顶点\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eu\u003c/i\u003e\u003c/span\u003e和\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003ev\u003c/i\u003e\u003c/span\u003e之间的边。保证在查询时图中存在这条边。\u003c/li\u003e\u003cli\u003e \u003cspan class\u003d\"tex-font-style-tt\"\u003e?\u003c/span\u003e:计算查询时图中的连通分量数量。\u003c/li\u003e\u003c/ol\u003e 顶点编号从\u003cspan class\u003d\"tex-span\"\u003e1\u003c/span\u003e到\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e。没有查询会有\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003eu\u003c/i\u003e \u003d \u003ci\u003ev\u003c/i\u003e\u003c/span\u003e。图是无向的。"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e对于每个\u0027\u003cspan class\u003d\"tex-font-style-tt\"\u003e?\u003c/span\u003e\u0027查询,输出查询时图中的连通分量数量,每行一个。\u003c/p\u003e"}},{"title":"示例 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e5 11\n?\n+ 1 2\n+ 2 3\n+ 3 4\n+ 4 5\n+ 5 1\n?\n- 2 3\n?\n- 4 5\n?\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e5\n1\n1\n2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}