
思路分析:
- 创建一个大小为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)







