
线性DP
小浩尤其阔爱
一个努力小菜鸟
展开
-
最短编辑路径
最短编辑路径题目给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有:删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。现在请你求出,将 A 变为 B 至少需要进行多少次操作。输入格式第一行包含整数 n,表示字符串 A 的长度。第二行包含一个长度为 n 的字符串 A。第三行包含整数 m,表示字符串 B 的长度。第四行包含一个长度为 m 的字符串 B。字符串中均只包含大写字母。原创 2021-06-24 19:16:26 · 247 阅读 · 0 评论 -
最长公共子序列
最长公共子序列(DP)题目给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。输入格式第一行包含两个整数 N 和 M。第二行包含一个长度为 N 的字符串,表示字符串 A。第三行包含一个长度为 M 的字符串,表示字符串 B。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤1000样例输入4 5acbdabedc输出3下面是 全部代码。// 最长公共子序列#includ原创 2021-06-23 12:35:39 · 104 阅读 · 0 评论 -
最长上升子序列(优化)
最长上升子序列(优化)题目给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列输出格式输出一个整数,表示最大长度。数据检测输入73 1 2 1 8 5 6输出4 下面展示整个代码。核心利用了模拟堆栈。#include<bits/stdc++.h>//万能头文件;using namespace std;int main(void) { int n; cin >原创 2021-06-22 11:48:00 · 222 阅读 · 0 评论