【题目链接】
http://acm.hdu.edu.cn/showproblem.php?pid=5125
【解题报告】
求A的最长上升子序列,其中A中至多有M个元素可以被B中同位置元素替换。
考虑到数据范围只有1e3,所以完全可以用O(n^2)的方法来求LIS,但是由于有了B数组的加入,所以我们需要考虑Dp的状态要设置两个,一个是从上一个状态的a转移过来,一个是从上一个状态的b转移过来。
所以转移方程一共有2×2种情况,分类讨论列写转移方程即可。并没有太多难点,细心即可。
【参考代码】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int dp[1000+100][