pat 1042. Shuffling Machine (20)

    xiaoxiao2021-03-25  100

    https://www.patest.cn/contests/pat-a-practise/1042

    hash 一下顺序, 然后就是dp了。

    #include <cstdio> #include <algorithm> using namespace std; #define rep(i,j,k) for(int i=j;i<=k;i++) #define inone(i) scanf("%d",&i) const int maxn = 1e4 + 10; int n, m, l, x, res, a[maxn], b[maxn], dp[maxn]; int main() { inone(n); rep(i, 1, n) a[i] = n + 1; inone(m); rep(i, 1, m) { inone(x); a[x] = i; } inone(l); rep (i, 1, l) inone(b[i]); rep(i, 1, l) rep(j, 0, i - 1) { if (a[b[i]] <= n && a[b[i]] >= a[b[j]]) dp[i] = max(dp[i], dp[j] + 1); } rep(i, 1, l) { if (a[b[i]] <= n) res = max(res, dp[i]); } printf("%d\n", res); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-10440.html

    最新回复(0)