摘要: //背包:容量是n的背包,n个物品的体积分别是1,2,3……n,恰好装满背包的方案数,每个物品可以用无限次 状态表示:f(i, j) 集合:从1~i中选,体积恰好是j的方案 属性:数量 状态计算: f(i,j):i选了0,1,2,3……n个: f[i - 1][j], f[i-1][j-i], f( 阅读全文
posted @ 2020-04-22 13:23 龙雪可可 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 状态表示的时候表示的是某一段区间。 动态规划: 1、状态表示:f[i, j] 第i堆到第j堆的区间 1)集合:所有将第i堆和第j堆石子合并成一堆石子的 合并方法的集合 2)min: 所有合并方式代价的最小值 2、状态计算:f[1][n]就是所求的,从第1堆一直合并到第n堆的合并方式的最小值。 最后一 阅读全文
posted @ 2020-04-22 12:22 龙雪可可 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 902. 最短编辑距离 给定两个字符串A和B,现在要将A经过若干操作变为B,可进行的操作有: 删除–将字符串A中的某个字符删除。 插入–在字符串A的某个位置插入某个字符。 替换–将字符串A中的某个字符替换为另一个字符。 现在请你求出,将A变为B至少需要进行多少次操作。 输入格式 第一行包含整数n,表 阅读全文
posted @ 2020-04-22 00:24 龙雪可可 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 输入样例: 4 5 acbd abedc 输出样例: 3 集合f[i][j]: 所有在第一个序列的前i个字母中出现,且在第二个序列的前j个字母中出现的子序列 属性:最大值max。 包含与不包含a[i] b[j]的情况,都不包含a[i] b[j]的情况:00: f[i-1][j-1], 都包含a[i] 阅读全文
posted @ 2020-04-21 23:24 龙雪可可 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 一层一层的,有着近似的线性关系,称为线性DP。 数字三角形: 复杂度:状态数量 * 转移,本题状态数量是n ^ 2 = 500 * 500 = 250000,转移是O(1)的。 #include <iostream> #include <algorithm> #include <cstring> u 阅读全文
posted @ 2020-04-21 20:02 龙雪可可 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 01背包问题: #include <iostream> #include <algorithm> using namespace std; const int N = 1010; int v[N], w[N]; int f[N][N]; int main() { int n, m; cin>>n>> 阅读全文
posted @ 2020-04-20 22:37 龙雪可可 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Nim游戏: 给定n堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。 问如果两人都采用最优策略. /*先手必胜状态:可以走到某一个必败状态(2,2)(0,0)先手必败状态:走不到任何一个必败状态(1,2)(0,2)*/ 阅读全文
posted @ 2020-04-20 11:59 龙雪可可 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 三个圆围成的面积。 A + B + C - D - E - F + G 给定一个整数n和m个不同的质数p1,p2,…,pm。 请你求出1~n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。 输入格式 第一行包含整数n和m。 第二行包含m个质数。 输出格式 输出一个整数,表示满足条件的整数 阅读全文
posted @ 2020-04-19 22:39 龙雪可可 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1、求组合数,从a中选b个数的方案: #include <iostream> using namespace std; const int N = 2001, mod = 1e9 + 7; int c[N][N]; void init() { for(int i = 0;i < N;i++) for 阅读全文
posted @ 2020-04-19 15:25 龙雪可可 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Gauss #include <iostream> #include <algorithm> #include <cmath> using namespace std; const double eps = 1e-6; const int N =110; int n; double a[N][N]; 阅读全文
posted @ 2020-04-19 12:47 龙雪可可 阅读(197) 评论(0) 推荐(0) 编辑
****************************************** 页脚Html代码 ******************************************