22hhlin


私信TA

用户名:dotcpp0703740

访问量:3147

签 名:

好好学算法

等  级
排  名 11147
经  验 989
参赛次数 0
文章发表 15
年  龄 20
在职情况 学生
学  校 汕头大学
专  业 计算机科学与技术

  自我简介:

解题思路: 可以先求最长可以组成的序列,相减就是最少删除了。


参考代码:

#include <bits/stdc++.h>

using namespace std;


const int N = 100010;

struct T {

    int l, r;

}w[N];

int dp[N], g[10];


int main(void) {

    int n;

    cin >> n;

    for (int i = 1; i <= n; i++) {

        string s;

        cin >> s;

        w[i] = {s[0] - '0', s.back() - '0'};

    }    

    for (int j = 1; j <= n; j++) {

        dp[j] = 1;

        dp[j] = max(dp[j], g[w[j].l] + 1);

        g[w[j].r] = max(dp[j], g[w[j].r]);

    }

    int ans = -1;

    for (int i = 1; i <= n; i++) {

        ans = max(ans, dp[i]);

    }

    printf("%d\n", n - ans);

    return 0;

}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区