Longest common subsequence with at most one swap
Swapping two non-overlapping subsequences is same as swapping two non-overlapping substrings of one of the input strings. 

A simple algorithm would be to guess the start and end points of the substrings that we want to swap, let them be (s1,t1) and (s2,t2), and run LCS using this swapped string. There are O(m^2*n^2) such guesses and each one takes O(m*n).