题意: 这题显然直接tarjan是做不了的. 这里安利另一个求SCC的算法Kosaraju,学习的话可以见这篇博客 于是结合莫队,我们有了个暴力. 发现主要瓶颈是dfs过程中找最小的未经过的点,我们用bitset优化一下就过了. 注意有重边,不能直接在biset中删除,要开个邻接矩阵判一下. code: #include<bits/stdc++.h> using namespace std; #define re register typedef long long ll; const int…
传送们 简单的回滚莫队,调了半天发现排序的时候把m达成了n... 代码: #include<bits/stdc++.h> #define N 100005 #define ll long long using namespace std; ll cnt[N],tot[N],val[N],ans[N],rk[N],mp[N],tmp; int n,m,blo[N],block,num,pos=1,siz; struct Q{int l,r,id;}q[N]; inline ll read(){…