hdu 3260

来源:互联网 发布:苹果电脑适合做淘宝吗 编辑:程序博客网 时间:2024/05/22 14:13

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3460

据说可以用字典树,但是不会。。我是用排序做的。有点贪心的感觉。

其实  ans=输出(n)+   相邻的两字符串不同的部分*2  - 最大字符串(最后保留部分。)

下面是AC代码;

#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;bool cmp(const string &a,const string &b){return strcmp(a.c_str(),b.c_str())<0;}int main(){int n,i,j;char name[100];while(EOF!=scanf("%d",&n)){vector<string> vec; for(i=0;i<n;i++){scanf("%s",name);vec.push_back(string(name));}sort(vec.begin(),vec.end(),cmp);int ans=0;int max=vec[0].size();ans+=vec[0].size();for(i=1;i<n;i++){for(j=0;j<vec[i-1].size()&&j<vec[i].size();j++){if(vec[i][j]!=vec[i-1][j])break;}ans+=vec[i].size()-j;if(vec[i].size()>max)  max=vec[i].size();}cout<<n+2*ans-max<<endl;}return 0;}


原创粉丝点击