吼啊~
【题目分析】
战争这道考试题说是和这道题差不多,然后就看了一下,维护的信息比考试题更少了。。。。。。orz
跟考试题差不多,这道题也是离线先储存所有摧毁点(很良心的是一次只有一个点qwq),然后在最后的图上dfs一遍,统计出最后的答案,然后往前加点,每次加点如果没有与之前的联通块相连就ans++,否则如果连接了两个不同联通块就ans--,最后正着输出答案即可。
【代码~】
#include<bits/stdc++.h>
using namespace std;
const int MAXN=4e5+10;
const int MAXM=5e5+10;
int n,m,cnt,q,ans[MAXN];
int fa[MAXN];
int head[MAXN];
int nxt[MAXM],to[MAXM];
int insta[MAXN],sta[MAXN],top;
int dfn[MAXN],low[MAXN],belong[MAXN],tot,sum;
int des[MAXN],sx[MAXN],vis[MAXN];
int Read()
{
int i=0,f=1;
char c;
for(c=getchar();(c>'9'||c<'0&#