蒟蒻LCS 50分 求助
查看原帖
蒟蒻LCS 50分 求助
696884
wzqqqqq楼主2022/4/27 09:46
n = int(input())
ans1 = list(map(int,input().split()))
ans2 = list(map(int,input().split()))
dp = [[0 for i in range(len(ans1))] for  j in range(len(ans2))]
for i in range(len(dp[0])):
    if ans1[i] == ans2[0]:
        dp[0][i] = dp[0][i-1] + 1
    else:
        dp[0][i] = dp[0][i - 1]
for j in range(len(dp)):
    if ans2[j] == ans1[0]:
        dp[j][0] = dp[j-1][0] + 1
    else:
        dp[j][0] = dp[j - 1][0]
for i in range(1,len(dp)):
    for j in range(1, len(dp[0])):
        if ans1[j] == ans2[i]:
            dp[i][j] =max(dp[i-1][j]+1,dp[i][j-1]+1)
        else:
            dp[i][j] = max(dp[i-1][j],dp[i][j-1])
print(dp[-1][-1])
2022/4/27 09:46
加载中...