虽然可能只有我才会这么 SB
如果你这么写 del():
del()
if(f[v]==mx&&!--g[f[v]])mx--;
这是错的,因为如果 f[v]!=mx 则不会更新 g[f[v]]。
f[v]!=mx
g[f[v]]
正确写法:
if(!--g[f[v]]&&f[v]==mx)mx--;