题目大意就是有一个图,破坏一个点同时可以破坏掉相邻点.每个点可以破坏一次,问可以完整破坏几次,点数=16. 看到16就想到状压什么的. 尝试设状态:用f[i]表示选的情况是i(一个二进制串),至少可以破坏几次. 那么就有这样的转移方式: 1.选走所有人用来破坏一次. 2.选举i的一个子集sub,f[i]=f[sub]+f[i-sub]. 然后发现这题就做完了. 具体做法:把每个人的破坏情况预处理一下,然后枚举全集i. 先全部选,看是否能破坏一层. 然后枚举子集,取max. 枚举子集方式:for(…