对于这种“不能交叉”的条件,不是很好处理.那么就考虑一下dp dp[i][j]表示,考虑A中用前i个,考虑连接B中用前j个,最大匹配.(类似LCS的DP) 转移:dp[i][j]=max(dp[i][j-1],dp[i-1][j])当li<=j<=ri时,dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1) 这样可以保证一定不会交叉,而且不会共用匹配点 O(N^2) 看起来非常无法优化.而且我们还没有好好利用区间连边的特点. 观察转移的特点, 一个发现是,这是一个前缀取m…