最长公共子序列
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1006
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char a[1005], b[1005];
//pos[i][j]的三个值1,2,3分别表示左、左上和上
//pos记录当前LCS是从哪个点过来的,如果不等于2说明当前值是继承自上一个相等的点
//所以如果不等于2就沿着路径往回走,一直走到(1,1)点,然后回溯输出pos[i][j] == 2的点即可
//此方法只能输出一个LCS
int dp[1005][1005], pos[1005][1005];
void print(int i, int j)
{
if (i <