状压dp
!
fffefw
这个作者很懒,什么都没留下…
展开
-
poj 3254 Corn Fields
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int rem[15],state[1000],dp[15][1000]; int m,n,most; int find_all_state() { most=1; int line=1<&...原创 2018-07-25 20:11:43 · 128 阅读 · 0 评论 -
Maximum Sum Gym - 101853E
传送门 题目大意就是给你一个矩阵,矩阵每个格子都有数,然后你可以选一些格子,获得一些值,然后要你求可以获得的最大值是多少,还有选取的格子不能相邻。废话不多说了直接看代码把 这种用一个数来表示一组数,以降低表示状态所需的维数的解题手段,就叫做状态压缩。 #include<bits/stdc++.h> using namespace std; int dp[20][7000],...原创 2018-08-15 21:11:37 · 208 阅读 · 0 评论 -
codeforces 1051d D. Bicolorings (dp)
题目大意是给你一个2*n的地图,然后每个格子可以涂黑色也可以涂白色,问得到k个联通块的涂色方案数,一列2个格子的涂色方案只有4种。首先定义状态:dp[i][j][v]为前i列格子,第i列状态为j,连通块个数为v对应的涂色方案数,然后手推一下dp[i][0][v],dp[i][1][v],dp[i][2][v],dp[i][3][v]对应的递推式即可,这里用滚动数组滚掉一维也可以,最后答案就是dp[...原创 2018-10-31 23:14:06 · 163 阅读 · 0 评论