各位大佬帮我看看吧TAT,为啥会只拿20分,和题解的思路明明是相同的...
#include<bits/stdc++.h>
#define forr(i,a,b) for(int i=(a);i<(b);i++)
#define endl '\n'
typedef unsigned long long ull;
//const int N = 1e8;
using namespace std;
int findfirst(ull m){
while(m>10){
m/=10;
}
return m;
}
int findlast(ull m){
return m%10;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int first, last;
ull n, dp[10]={0}, m, ans=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>m;
first=findfirst(m);
last=findlast(m);
dp[last]=max(dp[last], dp[first]+1);
}
for(int i=0;i<10;i++)ans=max(ans,dp[i]);
cout<<n-ans;
return 0;
}