原题链接:信息学奥赛一本通T1337-单词查找树
解题思路:
注意事项:
参考代码:
#include"bits/stdc++.h"
using namespace std;
// 定义一个字符串数组,用于存储输入的字符串
string s[20000];
int main(){
// 初始化变量n为1,用于记录输入的字符串数量
int n=1;
// 循环读取输入的字符串,直到遇到EOF
while(cin>>s[n++]);
// 调整n的值,使其表示实际输入的字符串数量
n-=2;
// 对字符串数组进行排序
sort(s+1,s+n+1);
// 初始化kkk为第一个字符串的长度
int kkk=s[1].size();
// 遍历排序后的字符串数组,计算总长度
for(int i=2;i<=n;i++){
int j=0;
// 比较当前字符串与前一个字符串,找到第一个不同的字符位置
while(s[i][j]==s[i-1][j]&&j<s[i-1].size()){
j++;
}
// 累加当前字符串从不同字符开始的部分长度
kkk+=s[i].size()-j;
}
// 输出最终计算的总长度,加1是因为有1个root
cout<<kkk+1;
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复