895c专题

codeforces 895C Square Subsets

题意:给定n个数,要求选出一个非空子集使得其乘积为某个数的平方,求方案数。        因为某个数的完全平方数其质因子肯定都为偶数次幂,反之,质因子全为偶数次幂的数是一个完全平方数,由于每一个数字都小于等于70,最多只有19个质因数,所以我们可以对每个质因子进行状压,用dp[i][state]表示考虑到第i个数字,当前幂次方的奇偶性为state的方案数。       我们可以先