
思路分析:
- 创建一个大小为10的向量 
hash,用于记录以每个数字结尾的字符串数量。 - 输入字符串数量 
n。 - 循环读取每个字符串,并更新 
hash中以当前字符串结尾的字符串数量。 - 同时更新最大字符串数量 
count。 - 输出不可达的字符串数量,即 
n减去最大字符串数量count。 
#include <iostream>
#include <vector>
#include <string>
#include <algorithm> // For max function
using namespace std;
int main() {
    vector<int> hash(10, 0); // 创建一个大小为10的向量,用于记录以每个数字结尾的字符串数量
    int n; // 输入的字符串数量
    int count = 0; // 记录最大的字符串数量
    cin >> n; // 输入字符串数量
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s; // 输入字符串
        // 更新以当前字符串结尾的字符串数量
        hash[s[s.size() - 1] - '0'] = max(hash[s[0] - '0'] + 1, hash[s[s.size() - 1] - '0']);
        // 更新最大字符串数量
        count = max(hash[s[s.size() - 1] - '0'], count);
    }
    // 输出不可达的字符串数量
    cout << n - count << endl;
    return 0;
}
 
                










![【洛谷 P9232】[蓝桥杯 2023 省 A] 更小的数 题解(字符串+区间DP)](https://img-blog.csdnimg.cn/img_convert/3e60bc502a65006d8a5c79a4ce5cbb51.png)







