ganmu


私信TA

用户名:dotcpp0726067

访问量:3465

签 名:

等  级
排  名 1522
经  验 2809
参赛次数 0
文章发表 104
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

状态转移方程看不懂,我也是不求甚解,先写下来

注意事项:

参考代码:

#include<iostream>

using namespace std;

const int N=15;

int dp[N];//定义dp,从0~9,只有10个数

int main()

{

    int a;//拿到用户输入的数据个数

    cin>>a;

    string b;//拿到用户每次输入的数,由于只看数字的开头和结尾,故用string更方便

    int ans=1e9;//设置无穷大

    for(int i=0;i<a;i++)

    {

        cin>>b;//拿到每次的数据

        dp[b.back()-'0']=max(dp[b.back()-'0'],dp[b.front()-'0']+1);//转移方程,求出最长数列

    }

    for(int i=0;i<10;i++)

    {

        ans=min(a-dp[i],ans);//用原本的数列减去最长数列就是最少删除数

    }

    cout<<ans;

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »