
状压dp
Bahuia
软件工程博士
展开
-
HDU - 4568 最短路 + 状压dp
题意:给出一个n*m的方格矩阵。其中某些点有宝藏,每个方格都有一个经过的代价,若为-1则不能经过,现在一个猎人需要将所有宝藏都拿走,他可以从矩阵边界任意的位置进入,也可以从边界上任意位置离开,(但是要注意只能进入和离开各一次),求把所有宝藏拿走的最小代价,如果不能拿走则输出-1。思路:这道题题意很坑,经过实践发现两个坑:1.猎人只能进入矩阵和离开矩阵各一次,否则第二个样例答案就是1原创 2017-02-13 11:43:26 · 546 阅读 · 0 评论 -
HDU - 5765 状压dp + 高维前缀和
题意:求出图中每条边分别属于多少个极小割集。思路:多学学别人的套路吧。。极小割一定可以将图分割成两个连通分量。所以其实我们枚举两个连通分量,其实就等价于枚举极小割。注意到点数目很少,可以状态压缩,一个点集合为s,那么另一部分集合就是(1找到了每个最小割,但是并不能每次都给最小割的边依次+1,复杂度爆炸。换个思路,对于每条边(u,v),可以用极小割的总数-(u,v)不参与的极原创 2017-03-29 18:16:32 · 809 阅读 · 0 评论 -
HDU 2825 AC自动机+状压dp
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2825 给出m个单词,要构造出满足包含其中k个单词的字符串,字符只包括小写字母,问长度为n的这样的串有多少个。思路:经典的AC自动机dp问题,这里需要状态压缩保存构造过程中已经找到的单词状态,令dp[i][j][k]表示当前已经构造了i个字符,在ac自动机上跑到结点j,且单词状态为S情况下的方案数原创 2017-08-13 19:12:57 · 653 阅读 · 0 评论 -
HDU 6086 AC自动机+状压dp
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6086 给出m个单词,要构造出长度为2*L的包含这全部m个单词的字符串,并且保证这个字符串非对称,其中字符只包括0和1,问一共有多少种构造方法。思路:本题是hdu2825的拓展,建议先做2825,博客链接:http://blog.youkuaiyun.com/bahuia/article/details/77原创 2017-08-13 19:48:16 · 1536 阅读 · 2 评论 -
HDU 6149 状压dp
9##题意: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6149 中文题。思路:状态压缩,将高点的选择情况压位。dp[i][S]表示的是枚举到第i个低点,且当前选择高点状态为S的最大山谷数。转移简单,注意细节。代码:#include <bits/stdc++.h>using namespace std;bool g[50][50], vis[原创 2017-08-20 22:23:11 · 928 阅读 · 0 评论