我闷今天的目的就是通过这道题初步理解一下状态压缩类动态规划 首先我们先来介绍一下定义,所谓状态压缩类动态规划,顾名思义,这是以集合信息为状态的特殊的动态规划问题。主要有传统集合动态规划和基于连通性状态压缩的动态规划两种。 因为某些动态规划的需求信息量非常的大,并且我们为每一个信息开一维数组这样的做法 ...
分类:
其他好文 时间:
2020-07-17 13:54:46
阅读次数:
60
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 由于每摆上一个棋子,需要查看周围9个位置,导致搜索的复杂度直接爆炸(n*n个格子里选k个格子,并且还得满足条件) 因此需要预处理每一行的合 ...
分类:
其他好文 时间:
2020-07-05 00:38:17
阅读次数:
58
「SCOI2005」王室联邦 "传送门" 树分块。 考虑把树,按照节点个数每 $B$ 个分块,把块顶作为省会。 "这是" 具体证明 参考代码: ...
分类:
其他好文 时间:
2020-01-24 00:16:42
阅读次数:
83
传送门 这是一道状压dp的经典例题 题目让输出所有可能的方案数 很显然 这是一道动态规划了 由于国王放置的位置有一定的限制 所以我们要在状态转移的过程中增加一维来存储状态 我们这一道题假设f[i][j][k] 意思是在前i行一共放置了j个国王 第i行国王放置的状态是k 存储的值是方案数 首先 我们可 ...
分类:
其他好文 时间:
2020-01-20 20:56:39
阅读次数:
82
王室联邦 【题意】树分块。求共有多少子树规模在$(B,3B)$。 【解题】dfs 或 bfs,用栈维护。 ...
分类:
其他好文 时间:
2019-11-07 09:19:33
阅读次数:
88
首先我们可以看出一个性质:取小的一定不比取大的劣.~~显然嘛~~ 于是我们将约翰所需的木板从小到大排序,原材料也按从小到大排序,然后二分一个$mid$表示约翰取几个木板,用搜索$check$一下即可. 几个剪枝: 一.我们可以定义一个全局变量$Waste$表示割下木板后总共浪费的原材料长度. $\t ...
分类:
其他好文 时间:
2019-10-29 23:28:58
阅读次数:
82
题面传送门 我们发现只有25个格子,应该是可以用爆搜过掉这道题的。但是裸的dfs时间复杂度过高,我们要进行相应的优化。 首先,由于马的数量过多,我们应该选择让空格“走”。 接下来我们发现这道题又很明显的一个限制条件,最多不能超过15步,所以我们可以使用迭代加深进行优化,所谓的迭代加深搜索,本质上还是 ...
分类:
其他好文 时间:
2019-10-24 09:47:50
阅读次数:
104
同步: 状态压缩嘛,就是把连续的一坨可以用01表示的状态,搞进个整数里,然后用位运算来进行检查、转移等操作。 例题 "[SCOI2005]互不侵犯" 每行国王分布的情况可以用01表示,这样就可以把每一行的状态用一个整数表示。 先预处理出一行里面没有会打架的的所有情况,和该情况对应的国王数量 为第 行 ...
分类:
其他好文 时间:
2019-10-24 09:42:57
阅读次数:
63
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 注:数据有加强(2018/4/25) 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左 ...
分类:
其他好文 时间:
2019-10-05 22:41:42
阅读次数:
113
gate 第二道状压dp... 预处理每种状态j所含1的个数为sum[j] f[i][j][l]代表第i行,状态为j,当前共有l个国王 枚举本层状态j,上一层状态k,判断八方向是否有相邻:k&j||(k<<1)&j||(k>>1)&j 枚举国王数l,则有f[i][j][l] += f[i-1][k] ...
分类:
其他好文 时间:
2019-10-05 22:08:40
阅读次数:
70