摘要: 题目大意:给定 N\ N 的棋盘,一共放 K 个国王,一共有多少种方法。 题解: `i&i using namespace std; int n,m,cnt[1 j&1)++res; cnt[i]=res; } } void solve(){ f[0][0][0]=1; for(int i=1;i 阅读全文
posted @ 2019-03-18 22:20 shellpicker 阅读(194) 评论(0) 推荐(0)
摘要: 题目大意:给定一个 N\ M 的棋盘,用 1\ 2 的木条填满有多少种不同的方式。 题解:在这里采用以行为阶段进行状压 dp。到第 i 行时,1\ 1 的木块分成两类,第一类是这个木块是竖着放置木条的上半部分,第二类是其他情况。对于第一种情况来说,第 i+1 行的状态只能是 0,而对于第二种情况来说 阅读全文
posted @ 2019-03-18 21:27 shellpicker 阅读(586) 评论(0) 推荐(0)
摘要: 题目大意:给定一个 N 个点的无向图,点有点权,求从 0 号点走到 N 1 号点的最短哈密顿路径是多少。 题解:由于哈密顿路径的定义是每个顶点必须经过且仅能经过一次,因此,可用当前是否经过了这些点和当前在哪个点来表示出一个状态,则一共有 $O(n2^n)$ 个状态。考虑转移方式,对于在 j 这个点的 阅读全文
posted @ 2019-03-18 16:02 shellpicker 阅读(2201) 评论(0) 推荐(0)
摘要: 题解:直接在输入点对的基础上建立 kd tree,再每次以每个节点的坐标查询离这个点最近的点即可,同时需要忽略这个点本身对该点答案的贡献。 另外,直接在这些点上建立 kd tree 会比一个一个插入点建立的更平衡,直接插入由于缺少了 nth_element 的划分,导致树很容易退化。 代码如下 cp 阅读全文
posted @ 2019-03-18 10:14 shellpicker 阅读(197) 评论(0) 推荐(0)