![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
状态压缩动态规划
借助二进制完成对状态的压缩,从而进行动态规划的过程,我们称之为状态压缩动态规划(简称"状压DP”)
Fool-Fish
这个作者很懒,什么都没留下…
展开
-
【题解】方格取数
题目题目描述 Problem Description给你一个n*n的格子的棋盘,每个格子里面有一个非负数。从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。输入 Input包括多个测试实例,每个测试实例包括一个整数nnn和n×nn\times nn×n个非负数(n≤20n\leq 20n≤20)输出 Output对于每个测试实例,输出可能取得的最大的和样例输入 Sample Input375 15 21 75 15 28原创 2020-06-28 13:59:42 · 494 阅读 · 1 评论 -
【总结】二进制枚举子集
集合所谓集合,是指由一个或多个确定的元素所构成的整体。我们一般用大括号及其中的若干元素表示个集合,例如{1,3, 5}示包含元素1、3、51、3、51、3、5的一个集合,{a, x, abc}表示包含三个字符串元素的集合。在集合中的元素没有先后顺序,例如,集合{1,2, 3}和集合{3, 1,2}等价的。在集合中,有一些集合间的关系,我们这里会用到的一个关系是子集。我们说集合A是集合B的子集,表示A中的所有元素都在B中出现。例如,对于集合{1,2,3,4,5}, {1,3,5}、 {2,5}、{4原创 2020-06-21 16:10:41 · 779 阅读 · 0 评论 -
【题解】传递游戏
题目题目描述n个人在做传递物品的游戏,编号为1-n。游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位;下一个人可以传递给未接过物品的任意一人。即物品只能经过同一个人一次,而且每次传递过程都有一个代价;不同的人传给不同的人的代价值之间没有联系;求当物品经过所有n个人后,整个过程的最小总代价是多少。输入格式第一行为n,表示共有n个人(16>=n>=2);以下为n*n的矩阵,第i+1行、第j列表示物品从编号为i的人传递到编号为j的人所花费的代价,特别的原创 2020-06-21 15:37:58 · 2665 阅读 · 0 评论