$vis$是一个2进制数
for(int i=vis; i; i=(i-1)&vis) foreach(i);
小知识:for枚举2进制子集
原文:https://www.cnblogs.com/PHDHD/p/12246611.html