这周复习了一下暑假就接触的状态压缩dp和树形d外加写了点杂题。开学也两个月了,要我个人总结的话这两个月花在acm上的时间确实不如之前了,经过暑假的好几次比赛和九月份的网络赛突然感觉自己好像不是这块料,说没有打击是不可能的。但是还是很想把acm当作一个兴趣打下去。
状态压缩dp,暑假已经接触了,但是还是似懂非懂,这里在复习一下。
我的理解是 状态压缩dp,总而言之就是将本来很复杂的状态,表示成二进制的形式,然后进行状态转移。
和最小生成树有点像,但区别是此时只需要一条路径,每个点只经过一次,也就是一笔画。
按我的理解,因为直接表示该题的状态会非常麻烦,用二进制表示当前所有点的链接情况,已经连上的记为1,反之为0.
当前状态为dp[i][j]表示,i的点链接情况下,j为最后一个链接点的最小权值和。为什么将最后一个链接点记为状态?因为这样方便转移 ,可以转移到上一个点的状态里。
注意,转移的时候,j已经是最后链接的点了,那么j必须是为1的,且待转移的之前状态中j不能为1。