P2150

首先要求方案数,我们想到dp。看到要求选出的数gcd为1,则两个集合分解质因数之后所含的质数集合不交。想到状压dp,借鉴思路真的特别少!只有7个。我们设计dp[2][1<<8][1<<8]为a集合为i,b集合为j的方案数,其中第一位用来滚动。那么我们先看小的数。容易想到一个数要么在左边出现,要么在右边出现,所以我们用01背包即可。同样,对于大质数,我们可以在只右边随意放,也可以只在左边随意放,然后就做好了。注意,这题要做滚动数组。所以再合并方案时dp[1]和dp[2]都会把选这个的贡献给算进去,所以在合并时还要减掉dp[0],这个tm调了1周,后来看了题解才知道。这怎么办啊,在赛场上怎么办啊

posted @ 2024-07-26 07:57  wuhupai  阅读(3)  评论(0编辑  收藏  举报