如果你使用了 000 为超级源点,那么判断入队次数的时候应该写成 if((++cnt[v])>=n+1) return true; 而不是 if((++cnt[v])>=n) return true;(因为加上源点有 n+1n+1n+1 个点)。
if((++cnt[v])>=n+1) return true;
if((++cnt[v])>=n) return true;
顺便放一下 #11 的数据:
3 2 2 1 -1 3 2 -1
如果是错误写法的话会判成无解。