原题链接:信息学奥赛一本通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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复