戳這裡
首先很容易想到列舉母音字符集然後統計答案,至於統計答案可以採用容斥的方式得到,但是列舉母音字符集的子集複雜度是 \(o(3^)\) 的複雜度不對,我們發現這樣列舉的情況下許多狀態其實是無用的,壓根不會出現的,所以我們考慮列舉每乙個單詞的子集來容斥,得到母音恰好為 \(x\) 的時候有多少個單詞恰好包含這個字符集,最後再把每乙個子集的答案加到子集身上,複雜度 \(o(n*2^3+2^\times 24)\)
#includeusing namespace std;
namespace zzc
}for(int i=0;i<24;i++)
}for(int i=0;i<(1<<24);i++) ans^=(f[i]*f[i]);
printf("%d\n",ans);
}}int main()