动态规划
zzulihrs
这个作者很懒,什么都没留下…
展开
-
acwing 95. 费解的开关
传送门枚举第一行的状态,然后向下进行递推,假设我们枚举的每个答案都是正确的,那就不可能从第一行进行翻转,此时如果第一行还有0那么就必须是第二行对应位置进行翻转,然后就依次向下进行递推。还有一种写法是从全1的情况逆向翻转找到所有合法情况进行hash,本题数据小也能过。#include<bits/stdc++.h>using namespace std;char mp[10][10], g[10][10];int n = 5;int dx[4] = {1, 0, -1, 0}, d原创 2020-07-02 19:06:29 · 125 阅读 · 0 评论 -
acwing 291. 蒙德里安的梦想
状压dp板题#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N =12, M = 1<<12;ll f[N][M]; ///代表前i-1列都被填满,j代表第i列的状态bool st[M]; ///预处理每一种状态是否合法int n, m;int main(){ while(scanf("%d%d", &n, &m)&&(原创 2020-06-23 22:26:23 · 316 阅读 · 0 评论 -
acwing 91. 最短Hamilton路径(哈密尔顿)
传送门状压dp#include<bits/stdc++.h>using namespace std;const int N =20, M = 1<<20;int f[M][N], d[N][N], n;///f[i][j]代表经过状态i,终点在j的点,i代表状态,转成二进制就代表经过那些点int main(){ scanf("%d", &n); for(int i = 0; i < n; ++i) for(int j = 0;原创 2020-06-23 00:18:45 · 229 阅读 · 1 评论 -
AcWing 12. 背包问题求具体方案
传送门#include<cstdio>#include<stdlib.h>#include<algorithm>#include<iostream>#include<string>#include<cstring>#include<map>#include<vector>#include<queue>#include<math.h>#include<climit原创 2020-06-13 22:09:10 · 144 阅读 · 0 评论 -
AcWing 11. 背包问题求方案数
题意:有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 1e9+7 的结果。f[j] 表示背包容积”恰好”为j时的最大价值和 ———— 最优解dpg[j] 表示背包容积”恰好”为j时取最优解的方案数 ———— 方案数dp#include<cstdio>#include<stdlib.h原创 2020-06-13 20:57:01 · 248 阅读 · 0 评论 -
最小编辑距离算法
https://blog.csdn.net/baodream/article/details/80417695原创 2019-11-19 16:19:07 · 280 阅读 · 0 评论