Sharing Chocolate LA 4794 状压dp

LA 4794

题意很简单,给你一块长x宽y的大巧克力,再给你n个面积为ai的小巧克力,问你能不能再若干次切割把大巧克力切割成n个巧克力,一次切割,必须把一块巧克力变成两块,不能切弯的,能就输出Yes,不能输出No

因为n的大小为16,所以可以用二进制表示当前剩下的巧克力集合,如果剩下巧克力集合的子集模当前的x或者y为0,可以进行下一步递推,直到只剩下一块巧克力或者不能不能操作为止,可用记忆化搜索。

#include
#include
#include
using namespace std;
const int maxn=16;
const int maxw=110;
int d[1<

你可能感兴趣的:(动态规划)