zoukankan      html  css  js  c++  java
  • 计蒜客 17412 Card Hand Sorting 最长公共子序列

    链接:

    https://nanti.jisuanke.com/t/17412

    题意:

    给你n张扑克,问你最少移动多少次使得排列好

    排列好是指同种花色在一起,并且递增或者递减

    题解:

    生成所有排列好的数列,然后求lcs

    代码:

    31 int n;
    32 int p[MAXN];
    33 int dp[MAXN][MAXN];
    34 VI v[4];
    35 
    36 int main() {
    37     ios::sync_with_stdio(false), cin.tie(0);
    38     cin >> n;
    39     rep(i, 0, n) {
    40         string s;
    41         cin >> s;
    42         int a, b;
    43         if (s[0] == 'T') a = 10;
    44         else if (s[0] == 'J') a = 11;
    45         else if (s[0] == 'Q') a = 12;
    46         else if (s[0] == 'K') a = 13;
    47         else if (s[0] == 'A') a = 14;
    48         else a = s[0] - '0';
    49 
    50         if (s[1] == 's') b = 0;
    51         else if (s[1] == 'h') b = 1;
    52         else if (s[1] == 'd') b = 2;
    53         else b = 3;
    54 
    55         int c = a + b * 13;
    56         p[i] = c;
    57         v[b].pb(c);
    58     }
    59     rep(i, 0, 4) sort(all(v[i]));
    60     int a[4] = { 0,1,2,3 };
    61     int ans = INF;
    62     do {
    63         rep(i, 0, 1 << 4) {
    64             VI vec;
    65             rep(j, 0, 4) {
    66                 VI t = v[a[j]];
    67                 if ((i >> j) & 1) reverse(all(t));
    68                 rep(i, 0, t.size()) vec.pb(t[i]);
    69             }
    70             memset(dp, 0, sizeof(dp));
    71             rep(i, 1, n + 1) rep(j, 1, n + 1) {
    72                 if (p[i - 1] == vec[j - 1]) dp[i][j] = dp[i - 1][j - 1] + 1;
    73                 else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
    74             }
    75             ans = min(ans, n - dp[n][n]);
    76         }
    77     } while (next_permutation(a, a + 4));
    78     cout << ans << endl;
    79     return 0;
    80 }
  • 相关阅读:
    jQuery火箭图标返回顶部代码
    质数和分解(完全背包)
    CodeForces
    FZU
    FZU
    Pets(匈牙利算法)
    Construct a Matrix (矩阵快速幂+构造)
    绝世好题(线性dp)
    String painter (区间dp)
    Funny Positive Sequence (思维+前缀)
  • 原文地址:https://www.cnblogs.com/baocong/p/7625273.html
Copyright © 2011-2022 走看看