![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划,状压
文章平均质量分 79
莫比乌斯灯泡
力争把题解写的好懂,错误之处请评论。
展开
-
SGU223(状压DP入门)
点击打开链接 题意:有n*n的棋盘,放置k个棋子,求所有棋子不相邻(八个方向)的方法数 思路:整个问题的约束条件有行数N,棋子个数k,棋子之间的状态;所以我们可以把状态定义为dp[i][j][a]:表示前i行,放置j个棋子,棋子间的状态为a的时候方案数是多少。 那么状态转移也很简单,该行的放置只和前一行有关,所以状态转移定义为:dp[i][j][a]+=dp[i-1][j-num[a]][b原创 2017-10-17 16:43:49 · 664 阅读 · 0 评论 -
Codeforces 895C
点击打开链接 题意:找出n个数的所有子集中乘起来是平方数的个数 思路:,一个数如果是平方数,那么它的所有质因子都是偶数个,ai小于等于70,所以可以预处理出所有质因子,然后再判断每一个数含有多少个质因子,如果是偶数个,那么这个数肯定是平方数,肯定可以被选作为集合中的元素,如果这个数含有某个质因子奇数个,那么就先把质因子那一位用1表示放在一个容器里,等到再有奇数质因子的标记被放进来,就看是不是同原创 2017-12-02 16:17:22 · 574 阅读 · 2 评论